admin-web/src/views/statisticalreport/itemReport/index.vue
@@ -53,12 +53,12 @@ label="报废数" width="150"> </el-table-column> <el-table-column align="center" prop="diaoBoNum" label="调拨数" width="150"> </el-table-column> <!-- <el-table-column--> <!-- align="center"--> <!-- prop="diaoBoNum"--> <!-- label="调拨数"--> <!-- width="150">--> <!-- </el-table-column>--> <el-table-column align="center" prop="totalNum" consum-base/src/main/java/com/consum/base/controller/FinSysTenantUserController.java
@@ -224,7 +224,7 @@ } tenantUser.setUserPhone(encPhone); // 怎么获取左侧机构树数据 tenantUser.setSysDeptId(3L); // 对应平台机构id 默认为平台管理 // tenantUser.setSysDeptId(3L); // 对应平台机构id 默认为平台管理 this.finSysTenantUserService.insert(tenantUser); // 插入平台用户 consum-base/src/main/java/com/consum/base/controller/LWhFormTransferController.java
@@ -1,25 +1,8 @@ package com.consum.base.controller; import java.lang.reflect.Field; import java.util.ArrayList; import java.util.Comparator; import java.util.HashMap; import java.util.List; import java.util.Map; import java.util.Optional; import java.util.stream.Collectors; import javax.servlet.http.HttpServletResponse; import org.apache.commons.compress.utils.Lists; import org.apache.poi.ss.usermodel.Workbook; import org.springframework.beans.BeanUtils; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.web.bind.annotation.GetMapping; import org.springframework.web.bind.annotation.PostMapping; import org.springframework.web.bind.annotation.RequestMapping; import org.springframework.web.bind.annotation.RestController; import cn.afterturn.easypoi.excel.ExcelExportUtil; import cn.afterturn.easypoi.excel.entity.TemplateExportParams; import cn.hutool.core.util.ReflectUtil; import com.consum.base.BaseController; import com.consum.base.core.utils.CommonUtil; import com.consum.base.core.utils.IdUtil; @@ -37,31 +20,31 @@ import com.consum.base.pojo.response.GoodsTemplateCountVO; import com.consum.base.pojo.response.LWHFromTransferExtendVO; import com.consum.base.pojo.response.TransferInfoVO; import com.consum.base.service.BaseWarehouseService; import com.consum.base.service.LGoodsUserRecordCoreService; import com.consum.base.service.LWhFormTransferService; import com.consum.base.service.LWhProcureModelService; import com.consum.base.service.LWhProcureModelUserRecordService; import com.consum.base.service.LWhProcureModelUserService; import com.consum.base.service.*; import com.consum.base.service.impl.LWhFormTransferCoreService; import com.consum.model.po.BaseWarehouse; import com.consum.model.po.FinSysTenantUser; import com.consum.model.po.LWhFormTransfer; import com.consum.model.po.LWhProcureModelUser; import com.consum.model.po.LWhProcureModelUserRecord; import com.consum.model.po.*; import com.iplatform.model.po.S_user_core; import com.walker.db.page.GenericPager; import com.walker.infrastructure.utils.CollectionUtils; import com.walker.infrastructure.utils.DateUtils; import com.walker.web.ResponseValue; import cn.afterturn.easypoi.excel.ExcelExportUtil; import cn.afterturn.easypoi.excel.entity.TemplateExportParams; import cn.hutool.core.util.ReflectUtil; import io.swagger.annotations.Api; import io.swagger.annotations.ApiImplicitParam; import io.swagger.annotations.ApiImplicitParams; import io.swagger.annotations.ApiOperation; import org.apache.commons.compress.utils.Lists; import org.apache.poi.ss.usermodel.Workbook; import org.springframework.beans.BeanUtils; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.web.bind.annotation.GetMapping; import org.springframework.web.bind.annotation.PostMapping; import org.springframework.web.bind.annotation.RequestMapping; import org.springframework.web.bind.annotation.RestController; import javax.servlet.http.HttpServletResponse; import java.lang.reflect.Field; import java.util.*; import java.util.stream.Collectors; /** * @Description 调拨管理 @@ -402,6 +385,11 @@ lWhProcureModelUser.setNowUserPhone(item.getPhone()); lWhProcureModelUser.setNowUserName(item.getUserName()); lWhProcureModelUser.setGoodsNum(item.getCount()); // 设置一下在用数量 Long oldProcureModelId = item.getOldProcureModelId(); LWhProcureModelUser oldInfo = lWhProcureModelUserService.get(new LWhProcureModelUser(oldProcureModelId)); lWhProcureModelUser.setUseCount(oldInfo.getUseCount()); procureModelUserList.add(lWhProcureModelUser); } @@ -457,6 +445,7 @@ List<RecordUserInfoVO> recordUserInfoList = recordList.stream().map(userInfo -> { RecordUserInfoVO recordUserInfoVO = new RecordUserInfoVO(); recordUserInfoVO.setOldProcureModelId(userInfo.getOldProcureModelId()); recordUserInfoVO.setUseName(userInfo.getUseName()); recordUserInfoVO.setPhone(userInfo.getPhone()); recordUserInfoVO.setNum(userInfo.getNum()); consum-base/src/main/java/com/consum/base/core/DepFormScrappedCoreServiceImpl.java
@@ -204,10 +204,13 @@ } goodsBaseService.execBatchUpdate("update DEP_FORM_SCRAPPED_MODEL set TOTAL_AMOUNT=? where id=?", parameterList); //分发物品使用人【L_WH_PROCURE_MODEL_USER】 中 根据id 更新 在用数量(USE_COUNT) //如果是A类物品,则更新 分发物品使用人【L_WH_PROCURE_MODEL_USER】 中 根据id 更新 在用数量(USE_COUNT) List<Object[]> procureModelUserIdList = new ArrayList<>(); for (Map<String, Object> itemMap : bfModelList) { Long procureModelUserId = Convert.toLong(itemMap.get("PROCURE_MODEL_USER_ID")); if (procureModelUserId == null) { continue; } Integer counts = Convert.toInt(itemMap.get("COUNTS")); // StringBuilder sb = new StringBuilder("update L_WH_PROCURE_MODEL_USER set USE_COUNT=USE_COUNT-").append(counts); @@ -221,7 +224,9 @@ one[2] = counts; procureModelUserIdList.add(one); } goodsBaseService.execBatchUpdate("update L_WH_PROCURE_MODEL_USER set USE_COUNT=USE_COUNT- ? where id= ? and USE_COUNT- ? >=0", procureModelUserIdList); if (!CollectionUtils.isEmpty(procureModelUserIdList)) { goodsBaseService.execBatchUpdate("update L_WH_PROCURE_MODEL_USER set USE_COUNT=USE_COUNT- ? where id= ? and USE_COUNT- ? >=0", procureModelUserIdList); } //采购、调拨、出库等的物品型号【L_WH_PROCURE_MODEL】中 根据调拨单+型号 更新 在用数量 consum-base/src/main/java/com/consum/base/core/DepUsingFormBackCoreServiceImpl.java
@@ -1,26 +1,14 @@ package com.consum.base.core; import java.util.ArrayList; import java.util.HashMap; import java.util.List; import java.util.Map; import java.util.stream.Collectors; import javax.annotation.Resource; import org.springframework.stereotype.Service; import org.springframework.transaction.annotation.Propagation; import org.springframework.transaction.annotation.Transactional; import org.springframework.transaction.interceptor.TransactionAspectSupport; import cn.hutool.core.convert.Convert; import com.consum.base.core.service.LWhWarningCoreServiceImpl; import com.consum.base.core.utils.IdUtil; import com.consum.base.core.utils.LockManage; import com.consum.base.service.GoodsBaseServiceImpl; import com.consum.base.service.LWarehouseFlowService; import com.consum.base.service.impl.LWhGoodsRecordDetailsService; import com.consum.base.service.LWhGoodsRecordService; import com.consum.base.service.LWhGoodsService; import com.consum.base.service.impl.LWhGoodsRecordDetailsService; import com.consum.model.po.BaseWarehouse; import com.consum.model.po.LWarehouseFlow; import com.consum.model.po.LWhGoodsRecord; @@ -28,9 +16,18 @@ import com.iplatform.model.po.S_user_core; import com.walker.infrastructure.utils.CollectionUtils; import com.walker.web.ResponseValue; import cn.hutool.core.convert.Convert; import lombok.extern.slf4j.Slf4j; import org.springframework.stereotype.Service; import org.springframework.transaction.annotation.Propagation; import org.springframework.transaction.annotation.Transactional; import org.springframework.transaction.interceptor.TransactionAspectSupport; import javax.annotation.Resource; import java.util.ArrayList; import java.util.HashMap; import java.util.List; import java.util.Map; import java.util.stream.Collectors; /** * @ClassName DepFormScrappedCoreServiceImpl @@ -138,7 +135,7 @@ // 根据分发单、型号、使用人信息查询物品信息 List<Map<String, Object>> scrappedGoodsList = lWhGoodsService.queryScrappedGoods(warehouseType, warehouseId, transBusinessId, nowUserName, baseGoodsModelsId, (short) 2, counts); if (CollectionUtils.isEmpty(scrappedGoodsList) || scrappedGoodsList.size() < counts) { log.error("要报废的物品数量不足!"); log.error("要退回的物品数量不足!"); // 手动回滚 TransactionAspectSupport.currentTransactionStatus().setRollbackOnly(); throw new RuntimeException("报废失败!型号数量不足"); @@ -210,6 +207,31 @@ } goodsBaseService.execBatchUpdate("update DEP_FORM_SCRAPPED_MODEL set TOTAL_AMOUNT=? where id=?", parameterList); //如果是A类物品,则更新 分发物品使用人【L_WH_PROCURE_MODEL_USER】 中 根据id 更新 在用数量(USE_COUNT) List<Object[]> procureModelUserIdList = new ArrayList<>(); for (Map<String, Object> itemMap : bfModelList) { Long procureModelUserId = Convert.toLong(itemMap.get("PROCURE_MODEL_USER_ID")); if (procureModelUserId==null){ continue; } Integer counts = Convert.toInt(itemMap.get("COUNTS")); // StringBuilder sb = new StringBuilder("update L_WH_PROCURE_MODEL_USER set USE_COUNT=USE_COUNT-").append(counts); // sb.append(" where id=").append(procureModelUserId); // sb.append(" and USE_COUNT-").append(counts).append(" >=0"); // goodsBaseService.update(sb.toString()); Object[] one = new Object[3]; one[0] = counts; one[1] = procureModelUserId; one[2] = counts; procureModelUserIdList.add(one); } if (!CollectionUtils.isEmpty(procureModelUserIdList)) { goodsBaseService.execBatchUpdate("update L_WH_PROCURE_MODEL_USER set USE_COUNT=USE_COUNT- ? where id= ? and USE_COUNT- ? >=0", procureModelUserIdList); } //采购、调拨、出库等的物品型号【L_WH_PROCURE_MODEL】中 根据调拨单+型号 更新 在用数量 List<Object[]> procureModelParameterList = new ArrayList<>(); for (Map.Entry<String, Integer> entry : procureModelMap.entrySet()) { consum-base/src/main/java/com/consum/base/pojo/RecordUserInfoVO.java
@@ -10,7 +10,8 @@ */ @Data public class RecordUserInfoVO { //以前的记录id private Long oldProcureModelId; // 使用人 private String useName; consum-base/src/main/java/com/consum/base/pojo/dto/UseRecordDTO.java
@@ -34,4 +34,6 @@ private Long baseGoodsModelsId; @JsonProperty("procureModelId") private Long procureModelId; // l_wh_procure_model_user表旧有的id private Long oldProcureModelId; } consum-base/src/main/java/com/consum/base/pojo/request/ProcureModelInfoParam.java
@@ -10,6 +10,8 @@ */ @Data public class ProcureModelInfoParam { // l_wh_procure_model_user表旧有的id private Long oldProcureModelId; // 单号id private Long businessId; consum-base/src/main/java/com/consum/base/service/LGoodsUserRecordCoreService.java
@@ -1,22 +1,20 @@ package com.consum.base.service; import java.util.ArrayList; import java.util.HashMap; import java.util.List; import javax.annotation.Resource; import org.springframework.stereotype.Service; import org.springframework.transaction.annotation.Transactional; import org.springframework.transaction.interceptor.TransactionAspectSupport; import org.springframework.util.CollectionUtils; import com.consum.base.core.utils.IdUtil; import com.consum.base.core.utils.LockManage; import com.consum.model.po.LGoodsUserRecord; import com.consum.model.po.LWhFormTransfer; import com.consum.model.po.LWhProcureModelUser; import com.consum.model.po.LWhProcureModelUserRecord; import org.springframework.stereotype.Service; import org.springframework.transaction.annotation.Transactional; import org.springframework.transaction.interceptor.TransactionAspectSupport; import org.springframework.util.CollectionUtils; import javax.annotation.Resource; import java.util.ArrayList; import java.util.HashMap; import java.util.List; /** * @ClassName LGoodsUserRecordCoreService @@ -57,10 +55,10 @@ LWhFormTransfer whFormTransfer = goodsBaseService.get(new LWhFormTransfer(transBusinessId)); Integer inWarehouseType = whFormTransfer.getInWarehouseType(); Long inWarehouseId = whFormTransfer.getInWarehouseId(); // 将所有物品设置为未分发 // 将所有已下发物品设置为未分发 如果发生了退回,此时数量则小于分发时的数量! List<Long> srappedGoodsIds = lWhGoodsService.queryScrappedGoodsIds(inWarehouseType, inWarehouseId, transBusinessId, null, null, null, null); lWhGoodsService.modGoodsTransfering(srappedGoodsIds, null, null, null, 3); transBusinessId, null, null, (short)2, null); lWhGoodsService.modGoodsTransfering(srappedGoodsIds, null, null, null, 1); // 删除该调拨单旧有使用记录 lGoodsUserRecordService.delete(new LGoodsUserRecord(), "where TRANS_BUSINESS_ID =" + transBusinessId, new HashMap<>()); consum-base/src/main/java/com/consum/base/service/impl/LWhFormOutputServiceImpl.java
@@ -21,7 +21,6 @@ import com.iplatform.model.po.S_user_core; import com.walker.db.page.GenericPager; import com.walker.infrastructure.utils.CollectionUtils; import com.walker.infrastructure.utils.DateUtils; import com.walker.infrastructure.utils.StringUtils; import com.walker.jdbc.service.BaseServiceImpl; import lombok.extern.slf4j.Slf4j; @@ -141,7 +140,7 @@ } // 4 预警 //当库存变动时调用该方法 lWhWarningCoreService.updateKuCun((short) 0, warehouseId, new ArrayList<>(allChangModelList), null, DateUtils.getDateTimeNumber(System.currentTimeMillis())); // lWhWarningCoreService.updateKuCun((short) 0, warehouseId, new ArrayList<>(allChangModelList), null, DateUtils.getDateTimeNumber(System.currentTimeMillis())); return 1; consum-base/src/main/java/com/consum/base/service/impl/LWhProcureModelServiceImpl.java
@@ -1,13 +1,5 @@ package com.consum.base.service.impl; import java.util.HashMap; import java.util.List; import java.util.Map; import java.util.Objects; import org.apache.commons.compress.utils.Lists; import org.springframework.stereotype.Service; import com.consum.base.core.WhBusinessEnum; import com.consum.base.core.utils.MapUtils; import com.consum.base.core.utils.MapperUtil; @@ -16,6 +8,13 @@ import com.consum.base.service.LWhProcureModelService; import com.consum.model.po.LWhProcureModel; import com.walker.jdbc.service.BaseServiceImpl; import org.apache.commons.compress.utils.Lists; import org.springframework.stereotype.Service; import java.util.HashMap; import java.util.List; import java.util.Map; import java.util.Objects; /** * @ClassName LWhProcureModelService @@ -85,21 +84,27 @@ * @return */ private static String GET_GOODS_USE_INFO_BY_FF_ORDER_AND_GOOD_ID = "SELECT baseModel.GOODS_TEMPLATES_ID,proModel.BASE_GOODS_MODELS_ID,baseModel.MODEL_NAME,baseModel.UNIT,CONCAT(baseCate.CLASSIFICATION,'类') CLASSIFICATION,modelUser.id MODEL_USER_id,modelUser.NOW_USER_PHONE,modelUser.NOW_USER_NAME,CASE WHEN modelUser.id IS NULL THEN proModel.USE_COUNT ELSE modelUser.USE_COUNT END AS user_Use_Count,CASE WHEN modelUser.id IS NULL THEN proModel.COUNTS ELSE modelUser.GOODS_NUM END AS GOODS_NUM FROM L_WH_PROCURE_MODEL proModel LEFT JOIN BASE_GOODS_MODELS baseModel ON proModel.BASE_GOODS_MODELS_ID=baseModel.id LEFT JOIN BASE_GOODS_TEMPLATE baseTemp ON baseTemp.id=baseModel.GOODS_TEMPLATES_ID LEFT JOIN BASE_CATEGORY baseCate ON baseCate.id=baseTemp.CATEGORY_ID LEFT JOIN L_WH_PROCURE_MODEL_USER modelUser ON modelUser.WH_PROCURE_MODEL_ID=proModel.id WHERE proModel.BUSINESS_TYPE=4 AND proModel.USE_COUNT> 0 "; "SELECT baseModel.GOODS_TEMPLATES_ID,proModel.BASE_GOODS_MODELS_ID,baseModel.MODEL_NAME,baseModel.UNIT,CONCAT(baseCate.CLASSIFICATION,'类') CLASSIFICATION,modelUser.id MODEL_USER_id,modelUser.NOW_USER_PHONE,modelUser.NOW_USER_NAME,CASE WHEN modelUser.id IS NULL THEN proModel.USE_COUNT ELSE modelUser.USE_COUNT END AS user_Use_Count,CASE WHEN modelUser.id IS NULL THEN proModel.COUNTS ELSE modelUser.GOODS_NUM END AS GOODS_NUM FROM L_WH_PROCURE_MODEL proModel LEFT JOIN BASE_GOODS_MODELS baseModel ON proModel.BASE_GOODS_MODELS_ID=baseModel.id LEFT JOIN BASE_GOODS_TEMPLATE baseTemp ON baseTemp.id=baseModel.GOODS_TEMPLATES_ID LEFT JOIN BASE_CATEGORY baseCate ON baseCate.id=baseTemp.CATEGORY_ID LEFT JOIN L_WH_PROCURE_MODEL_USER modelUser ON modelUser.WH_PROCURE_MODEL_ID=proModel.id " ; private static String GET_GOODS_USE_INFO_BY_FF_ORDER_AND_GOOD_ID_END = "WHERE proModel.BUSINESS_TYPE=4 AND proModel.USE_COUNT> 0 "; @Override public List<Map<String, Object>> getGoodsUseInfoByFfOrderAndGoodId(Long goodsTemplateId, Long transBusinessId) { StringBuilder sql = new StringBuilder(GET_GOODS_USE_INFO_BY_FF_ORDER_AND_GOOD_ID); StringBuilder sqlEnd = new StringBuilder(GET_GOODS_USE_INFO_BY_FF_ORDER_AND_GOOD_ID_END); HashMap<String, Object> paramts = new HashMap<>(); if (goodsTemplateId != null) { sql.append(" AND baseModel.GOODS_TEMPLATES_ID=:goodsTemplateId "); sqlEnd.append(" AND baseModel.GOODS_TEMPLATES_ID=:goodsTemplateId "); paramts.put("goodsTemplateId", goodsTemplateId); } if (transBusinessId != null) { sql.append(" AND proModel.BUSINESS_ID=:transBusinessId "); sql.append("and modelUser.PROCURE_MODEL_USER_RECORD_ID = (select max(ID) from L_WH_PROCURE_MODEL_USER_RECORD where TRANS_BUSINESS_ID=:recordTransBusinessId)"); paramts.put("recordTransBusinessId", transBusinessId); sqlEnd.append(" AND proModel.BUSINESS_ID=:transBusinessId "); paramts.put("transBusinessId", transBusinessId); } else { sql.append("and modelUser.PROCURE_MODEL_USER_RECORD_ID = (select max(ID) from L_WH_PROCURE_MODEL_USER_RECORD)"); } return select(sql.toString(), paramts, new MapperUtil()); return select(sql.append(sqlEnd).toString(), paramts, new MapperUtil()); } @Override consum-base/src/main/java/com/consum/base/service/impl/LWhProcureModelUserServiceImpl.java
@@ -6,10 +6,11 @@ import com.consum.base.service.LWhProcureModelUserService; import com.google.common.collect.Lists; import com.walker.jdbc.service.BaseServiceImpl; import org.springframework.stereotype.Service; import java.util.HashMap; import java.util.List; import java.util.Map; import org.springframework.stereotype.Service; /** * @author asus @@ -24,6 +25,7 @@ public List<UseRecordDTO> selectUseRecord(Long businessId) { String sql = "SELECT\n" + "\tpmur.ID,\n" + "\tpmu.id as oldProcureModelId,\n" + "\tpm.ID procureModelId,\n" + "\tpmur.DEAL_TIME updateTime,\n" + "\tpmur.OPERATOR_NAME updateUserName,\n" consum-base/src/main/java/com/consum/base/service/impl/UsingFormBackServiceImpl.java
@@ -1,19 +1,5 @@ package com.consum.base.service.impl; import java.util.ArrayList; import java.util.HashMap; import java.util.List; import java.util.Map; import java.util.stream.Collectors; import javax.annotation.Resource; import org.apache.commons.compress.utils.Lists; import org.springframework.beans.BeanUtils; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Service; import org.springframework.transaction.annotation.Transactional; import com.consum.base.core.CodeGeneratorEnum; import com.consum.base.core.CodeGeneratorService; import com.consum.base.core.DepUsingFormBackCoreServiceImpl; @@ -26,32 +12,27 @@ import com.consum.base.pojo.request.UsingFormBackGoodsInfo; import com.consum.base.pojo.request.UsingFormBackParam; import com.consum.base.pojo.request.baseGoodModel; import com.consum.base.pojo.response.GoodsTemplateCountVO; import com.consum.base.pojo.response.UseInfo; import com.consum.base.pojo.response.UsingFormBackDetailListVO; import com.consum.base.pojo.response.UsingFormBackDetailVO; import com.consum.base.pojo.response.UsingFormBackGoodsTemplateInfo; import com.consum.base.pojo.response.UsingFormBackModelInfo; import com.consum.base.pojo.response.UsingFormBackVO; import com.consum.base.service.BaseCategoryService; import com.consum.base.service.FinSysTenantDepartmentService; import com.consum.base.service.LWhFormTransferService; import com.consum.base.service.UsingFormBackGoodsService; import com.consum.base.service.UsingFormBackModelService; import com.consum.base.service.UsingFormBackService; import com.consum.model.po.BaseCategory; import com.consum.model.po.FinSysTenantDepartment; import com.consum.model.po.FinSysTenantUser; import com.consum.model.po.LWhFormTransfer; import com.consum.model.po.UsingFormBack; import com.consum.model.po.UsingFormBackGoods; import com.consum.model.po.UsingFormBackModel; import com.consum.base.pojo.response.*; import com.consum.base.service.*; import com.consum.model.po.*; import com.iplatform.model.po.S_user_core; import com.walker.db.page.GenericPager; import com.walker.infrastructure.utils.CollectionUtils; import com.walker.infrastructure.utils.DateUtils; import com.walker.infrastructure.utils.StringUtils; import com.walker.jdbc.service.BaseServiceImpl; import org.apache.commons.compress.utils.Lists; import org.springframework.beans.BeanUtils; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Service; import org.springframework.transaction.annotation.Transactional; import javax.annotation.Resource; import java.util.ArrayList; import java.util.HashMap; import java.util.List; import java.util.Map; import java.util.stream.Collectors; /** * @author asus @@ -134,6 +115,9 @@ goods.setCategoryName(baseCategory.getCategoryName()); goods.setClassification(baseCategory.getClassification()); goods.setTransBusinessId(goodsInfo.getTransBusinessId()); goods.setBusinessFormCode(goodsInfo.getBusinessFormCode()); LWhFormTransfer lWhFormTransfer = lWhFormTransferService.selectById(goodsInfo.getTransBusinessId()); goods.setTransOutWarehouseType(lWhFormTransfer.getOutWarehouseType()); goods.setTransOutWarehouseId(lWhFormTransfer.getOutWarehouseId());