| | |
| | | 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.Optional; |
| | | |
| | | 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.interceptor.TransactionAspectSupport; |
| | | import org.springframework.util.CollectionUtils; |
| | | |
| | | import com.consum.base.core.CodeGeneratorEnum; |
| | | import com.consum.base.core.CodeGeneratorService; |
| | | import com.consum.base.core.utils.CurrencyUtil; |
| | |
| | | import com.consum.base.service.LWhFormTransferService; |
| | | import com.consum.base.service.LWhGoodsService; |
| | | import com.consum.base.service.LWhProcureModelService; |
| | | import com.consum.base.service.LWhProcureModelUserRecordServiceImpl; |
| | | import com.consum.base.service.LWhProcureModelUserRecordService; |
| | | import com.consum.base.service.LWhProcureModelUserServiceImpl; |
| | | import com.consum.model.po.BaseWarehouse; |
| | | import com.consum.model.po.BaseWarehouseManager; |
| | |
| | | import com.walker.db.page.GenericPager; |
| | | import com.walker.infrastructure.utils.StringUtils; |
| | | import com.walker.jdbc.service.BaseServiceImpl; |
| | | import java.util.ArrayList; |
| | | import java.util.HashMap; |
| | | import java.util.List; |
| | | import java.util.Map; |
| | | import java.util.Optional; |
| | | 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.interceptor.TransactionAspectSupport; |
| | | import org.springframework.util.CollectionUtils; |
| | | |
| | | /** |
| | | * @Description 调拨管理 |
| | |
| | | @Autowired |
| | | private LWhProcureModelUserServiceImpl lWhProcureModelUserService; |
| | | @Autowired |
| | | private LWhProcureModelUserRecordServiceImpl lWhProcureModelUserRecordService; |
| | | private LWhProcureModelUserRecordService lWhProcureModelUserRecordService; |
| | | @Autowired |
| | | private BaseWarehouseManagerService baseWarehouseManagerService; |
| | | |
| | | private static String QUERY_FORM_TRANSFER_LIST = "SELECT ft.* FROM l_wh_form_transfer ft " |
| | | + "left join L_WH_PROCURE_MODEL pm on pm.BUSINESS_ID = ft.id " |
| | | private static String QUERY_FORM_TRANSFER_LIST = |
| | | "SELECT ft.* FROM l_wh_form_transfer ft " + "left join L_WH_PROCURE_MODEL pm on pm.BUSINESS_ID = ft.id " |
| | | + "LEFT JOIN BASE_GOODS_MODELS bgm ON pm.BASE_GOODS_MODELS_ID=bgm.ID " |
| | | + "LEFT JOIN BASE_GOODS_TEMPLATE bgt ON bgm.GOODS_TEMPLATES_ID=bgt.id WHERE 1 = 1 "; |
| | | |
| | | |
| | | /** |
| | | * @Description 新增 |
| | |
| | | lWhProcureModel.setBusinessId(lWhFormTransferId); |
| | | lWhProcureModel.setBaseGoodsModelsId(baseGoodsModelsId); |
| | | //根据型号id查询型号 |
| | | List<Map<String, Object>> baseGoodsModels = this.baseGoodsModelsService.queryGoodsModelInfo(baseGoodsModelsId); |
| | | List<Map<String, Object>> baseGoodsModels = |
| | | this.baseGoodsModelsService.queryGoodsModelInfo(baseGoodsModelsId); |
| | | Map<String, Object> baseModelMap = baseGoodsModels.get(0); |
| | | if (baseGoodsModels != null && !CollectionUtils.isEmpty(baseModelMap)) { |
| | | Object modelName = baseModelMap.get("modelName"); |
| | |
| | | return lWhFormTransferId; |
| | | } |
| | | |
| | | |
| | | /** |
| | | * @Description 列表查询 |
| | | * @Author 卢庆阳 |
| | |
| | | //物品名称 |
| | | if (!StringUtils.isEmpty(param.getGoodsTemplateName())) { |
| | | sql.append("AND bgt.GOODS_NAME LIKE :goodsTemplateName "); |
| | | paramts.put("goodsTemplateName", StringUtils.CHAR_PERCENT + param.getGoodsTemplateName() + StringUtils.CHAR_PERCENT); |
| | | paramts.put("goodsTemplateName", |
| | | StringUtils.CHAR_PERCENT + param.getGoodsTemplateName() + StringUtils.CHAR_PERCENT); |
| | | } |
| | | //调拨机构 |
| | | if (param.getOutAgencyId() != null) { |
| | |
| | | |
| | | String sql = "SELECT bgt.id, CATEGORY_ID, CATEGORY_NAME, GOODS_NAME,bgt.CLASSIFICATION type " |
| | | + "FROM l_wh_procure_model pm LEFT JOIN base_goods_models bgm ON bgm.id = pm.BASE_GOODS_MODELS_ID " |
| | | + "LEFT JOIN base_goods_template bgt ON bgt.id = bgm.GOODS_TEMPLATES_ID " + "WHERE pm.BUSINESS_ID =:id GROUP BY bgt.id "; |
| | | + "LEFT JOIN base_goods_template bgt ON bgt.id = bgm.GOODS_TEMPLATES_ID " |
| | | + "WHERE pm.BUSINESS_ID =:id GROUP BY bgt.id "; |
| | | Map<String, Object> paramMap = new HashMap<>(); |
| | | paramMap.put("id", result.getId()); |
| | | List<Map<String, Object>> procureModelList = lWhFormOutputService.select(sql, paramMap, new MapperUtil()); |
| | | |
| | | String queryRecord = "SELECT * FROM l_wh_procure_model_user_record where TRANS_BUSINESS_ID = :id order by DEAL_TIME desc limit 1"; |
| | | LWhProcureModelUserRecord lWhProcureModelUserRecord = lWhProcureModelUserRecordService.get(queryRecord, paramMap, new LWhProcureModelUserRecord()); |
| | | String queryRecord = |
| | | "SELECT * FROM l_wh_procure_model_user_record where TRANS_BUSINESS_ID = :id order by DEAL_TIME desc limit 1"; |
| | | LWhProcureModelUserRecord lWhProcureModelUserRecord = |
| | | lWhProcureModelUserRecordService.get(queryRecord, paramMap, new LWhProcureModelUserRecord()); |
| | | List<FormTransferGoodsVO> formTransferGoods = Lists.newArrayList(); |
| | | for (Map<String, Object> map : procureModelList) { |
| | | FormTransferGoodsVO procureTemplateInfoVO = MapUtils.convertMapToObj(map, FormTransferGoodsVO.class); |
| | |
| | | List<GoodsModelVO> goodsModelVOList = Lists.newArrayList(); |
| | | String sql2 = "SELECT pm.id,pm.BASE_GOODS_MODELS_NAME,bgm.UNIT,COUNTS,total_amount " |
| | | + "FROM l_wh_procure_model pm LEFT JOIN base_goods_models bgm ON bgm.id = pm.BASE_GOODS_MODELS_ID " |
| | | + "LEFT JOIN base_goods_template bgt ON bgt.id = bgm.GOODS_TEMPLATES_ID " + "WHERE pm.BUSINESS_ID =:id and bgt.id =:baseGoodsTemplateId"; |
| | | + "LEFT JOIN base_goods_template bgt ON bgt.id = bgm.GOODS_TEMPLATES_ID " |
| | | + "WHERE pm.BUSINESS_ID =:id and bgt.id =:baseGoodsTemplateId"; |
| | | Map<String, Object> goodsModelParamMap = new HashMap<>(); |
| | | goodsModelParamMap.put("id", result.getId()); |
| | | goodsModelParamMap.put("baseGoodsTemplateId", baseGoodsTemplateId); |
| | | List<Map<String, Object>> modelList = lWhFormOutputService.select(sql2, goodsModelParamMap, new MapperUtil()); |
| | | List<Map<String, Object>> modelList = |
| | | lWhFormOutputService.select(sql2, goodsModelParamMap, new MapperUtil()); |
| | | modelList.forEach(item -> { |
| | | GoodsModelVO goodsModelVO = MapUtils.convertMapToObj(item, GoodsModelVO.class); |
| | | Integer businessType = result.getBusinessType(); |
| | |
| | | LWhProcureModelUser lWhProcureModelUser = new LWhProcureModelUser(); |
| | | lWhProcureModelUser.setWhProcureModelId(procureModelId); |
| | | lWhProcureModelUser.setProcureModelUserRecordId(lWhProcureModelUserRecord.getId()); |
| | | List<LWhProcureModelUser> procureModelUserList = this.lWhProcureModelUserService.select(lWhProcureModelUser); |
| | | List<LWhProcureModelUser> procureModelUserList = |
| | | this.lWhProcureModelUserService.select(lWhProcureModelUser); |
| | | if (!CollectionUtils.isEmpty(procureModelUserList)) { |
| | | List<DepartGoodsUseInfo> departGoodsUseInfoList = Lists.newArrayList(); |
| | | procureModelUserList.forEach(useInfo -> { |
| | |
| | | return result; |
| | | } |
| | | |
| | | |
| | | /** |
| | | * @Description 导出调拨出库单 |
| | | * @Author 卢庆阳 |
| | | * @Date 2023/10/31 |
| | | */ |
| | | public List<TransferExcelTemplate> export(Long id, Integer type) { |
| | | String sql = "SELECT\n" |
| | | + "\tft.BUSINESS_FORM_CODE,\n" |
| | | + "\tft.OPERATOR_NAME,\n" |
| | | + "\tft.CREATE_TIME,\n" |
| | | + "\tft.IN_AGENCY_NAME,\n" |
| | | + "\tft.OUT_AGENCY_NAME,\n" |
| | | + "\tGOODS_NAME templateName,\n" |
| | | + "\tpm.BASE_GOODS_MODELS_NAME baseModelName,\n" |
| | | + "\tpm.COUNTS num,\n" |
| | | + "\tpm.total_amount,\n" |
| | | + "\tft.BEIZ1 remark\n" |
| | | + "FROM\n" |
| | | + "\tl_wh_form_transfer ft\n" |
| | | String sql = "SELECT\n" + "\tft.BUSINESS_FORM_CODE,\n" + "\tft.OPERATOR_NAME,\n" + "\tft.CREATE_TIME,\n" |
| | | + "\tft.IN_AGENCY_NAME,\n" + "\tft.OUT_AGENCY_NAME,\n" + "\tGOODS_NAME templateName,\n" |
| | | + "\tpm.BASE_GOODS_MODELS_NAME baseModelName,\n" + "\tpm.COUNTS num,\n" + "\tpm.total_amount,\n" |
| | | + "\tft.BEIZ1 remark\n" + "FROM\n" + "\tl_wh_form_transfer ft\n" |
| | | + "\tINNER JOIN l_wh_procure_model pm ON ft.ID = pm.BUSINESS_ID\n" |
| | | + "\tINNER JOIN base_goods_models bgm ON bgm.ID = pm.BASE_GOODS_MODELS_ID\n" |
| | | + "\tINNER JOIN base_goods_template bgt ON bgt.ID = bgm.GOODS_TEMPLATES_ID\n" |
| | | + "WHERE\n" |
| | | + "\tft.id = :id"; |
| | | + "\tINNER JOIN base_goods_template bgt ON bgt.ID = bgm.GOODS_TEMPLATES_ID\n" + "WHERE\n" + "\tft.id = :id"; |
| | | Map<String, Object> paramts = new HashMap<>(); |
| | | paramts.put("id", id); |
| | | List<Map<String, Object>> select = this.select(sql, paramts, new MapperUtil()); |
| | |
| | | StringBuilder sql = new StringBuilder( |
| | | "SELECT ft.id,ft.BUSINESS_FORM_CODE,bgt.GOODS_NAME,bgt.CLASSIFICATION type,bgm.id goodsModelId,bgm.MODEL_NAME goodsModelName,pm.COUNTS goodsCount,fst.`name` tenantName," |
| | | + "ft.IN_WAREHOUSE_NAME departmentName,ft.OPERATOR_ID,ft.CREATE_TIME,ft.OPERATOR_NAME FROM l_wh_form_transfer ft " |
| | | + "inner JOIN l_wh_procure_model pm ON ft.ID = pm.BUSINESS_ID " + "inner JOIN base_goods_models bgm ON bgm.id = pm.BASE_GOODS_MODELS_ID " |
| | | + "inner JOIN l_wh_procure_model pm ON ft.ID = pm.BUSINESS_ID " |
| | | + "inner JOIN base_goods_models bgm ON bgm.id = pm.BASE_GOODS_MODELS_ID " |
| | | + "inner JOIN base_goods_template bgt ON bgt.id = bgm.GOODS_TEMPLATES_ID " |
| | | + "inner JOIN fin_sys_tenant_user fstu ON fstu.id = ft.OPERATOR_ID " |
| | | + "inner JOIN fin_sys_tenant_department fstd ON fstu.SYS_DEPT_ID = fstd.ID " |
| | |
| | | //单号 |
| | | if (StringUtils.isNotEmpty(transferQry.getBusinessFormCode())) { |
| | | sql.append("AND BUSINESS_FORM_CODE like :businessFormCode "); |
| | | paramts.put("businessFormCode", StringUtils.CHAR_PERCENT + transferQry.getBusinessFormCode() + StringUtils.CHAR_PERCENT); |
| | | paramts.put("businessFormCode", |
| | | StringUtils.CHAR_PERCENT + transferQry.getBusinessFormCode() + StringUtils.CHAR_PERCENT); |
| | | } |
| | | //物品名称 |
| | | if (StringUtils.isNotEmpty(transferQry.getGoodsTemplateName())) { |
| | | sql.append("AND bgt.GOODS_NAME like:goodsName "); |
| | | paramts.put("goodsName", StringUtils.CHAR_PERCENT + transferQry.getGoodsTemplateName() + StringUtils.CHAR_PERCENT); |
| | | paramts.put("goodsName", |
| | | StringUtils.CHAR_PERCENT + transferQry.getGoodsTemplateName() + StringUtils.CHAR_PERCENT); |
| | | } |
| | | // 规格型号 |
| | | if (transferQry.getBaseGoodsModelsId() != null) { |
| | |
| | | } |
| | | sql.append("ORDER BY ft.CREATE_TIME DESC"); |
| | | |
| | | GenericPager<Map<String, Object>> mapGenericPager = this.selectSplit(sql.toString(), paramts, transferQry.getPageNum(), transferQry.getPageSize(), |
| | | new MapperUtil()); |
| | | GenericPager<Map<String, Object>> mapGenericPager = this.selectSplit(sql.toString(), paramts, |
| | | transferQry.getPageNum(), transferQry.getPageSize(), new MapperUtil()); |
| | | |
| | | return mapGenericPager; |
| | | } |
| | | |
| | | |
| | | public GenericPager<Map<String, Object>> queryFormTransferDetailList(TransferQry param) { |
| | | |
| | | HashMap<String, Object> params = new HashMap<>(); |
| | | StringBuilder sql = new StringBuilder( |
| | | "SELECT ft.id,\n" + " ft.BUSINESS_FORM_CODE,\n" + " bgt.GOODS_NAME,\n" + " bgt.CLASSIFICATION,\n" |
| | | + " pm.BASE_GOODS_MODELS_NAME,\n" + " pm.COUNTS,\n" + " ft.IN_AGENCY_NAME,\n" + " ft.OPERATOR_NAME,\n" |
| | | + " ft.CREATE_TIME,\n" + " ft.IN_TIME,\n" + " ft.OUT_AGENCY_NAME,\n" + " ft.OUT_OPERATOR_NAME,\n" |
| | | + " ft.OUTPUT_TIME\n" + "FROM l_wh_form_transfer ft\n" + " LEFT JOIN l_wh_procure_model pm ON ft.ID = pm.BUSINESS_ID\n" |
| | | StringBuilder sql = new StringBuilder("SELECT ft.id,\n" + " ft.BUSINESS_FORM_CODE,\n" |
| | | + " bgt.GOODS_NAME,\n" + " bgt.CLASSIFICATION,\n" + " pm.BASE_GOODS_MODELS_NAME,\n" |
| | | + " pm.COUNTS,\n" + " ft.IN_AGENCY_NAME,\n" + " ft.OPERATOR_NAME,\n" |
| | | + " ft.CREATE_TIME,\n" + " ft.IN_TIME,\n" + " ft.OUT_AGENCY_NAME,\n" |
| | | + " ft.OUT_OPERATOR_NAME,\n" + " ft.OUTPUT_TIME\n" + "FROM l_wh_form_transfer ft\n" |
| | | + " LEFT JOIN l_wh_procure_model pm ON ft.ID = pm.BUSINESS_ID\n" |
| | | + " LEFT JOIN base_goods_models bgm ON bgm.id = pm.BASE_GOODS_MODELS_ID\n" |
| | | + " LEFT JOIN base_goods_template bgt ON bgt.id = bgm.GOODS_TEMPLATES_ID where 1=1 "); |
| | | if (StringUtils.isNotEmpty(param.getBusinessFormCode())) { |
| | |
| | | sql.append("AND ft.IN_TIME < :createTimeEnd "); |
| | | params.put("createTimeEnd", param.getEndTime() * 1000000 + 240000); |
| | | } |
| | | GenericPager<Map<String, Object>> mapGenericPager = this.selectSplit(sql.toString(), params, param.getPageNum(), param.getPageSize(), new MapperUtil()); |
| | | GenericPager<Map<String, Object>> mapGenericPager = |
| | | this.selectSplit(sql.toString(), params, param.getPageNum(), param.getPageSize(), new MapperUtil()); |
| | | return mapGenericPager; |
| | | |
| | | } |
| | | |
| | | public List<Map<String, Object>> queryDepartmentTransferOrder() { |
| | | |
| | | String sql = |
| | | "SELECT ft.id,\n" + " ft.BUSINESS_FORM_CODE,\n" + " gr.GOODS_TEMPLATE_NAME,\n" + " gr.BASE_GOODS_TEMPLATE_ID goodsTemplateId,\n" |
| | | + " ft.CREATE_TIME\n" + "\n" + "FROM l_wh_form_transfer ft\n" + " LEFT JOIN L_WAREHOUSE_FLOW wf ON ft.id = wf.BUSINESS_FORM_ID\n" |
| | | String sql = "SELECT ft.id,\n" + " ft.BUSINESS_FORM_CODE,\n" + " gr.GOODS_TEMPLATE_NAME,\n" |
| | | + " gr.BASE_GOODS_TEMPLATE_ID goodsTemplateId,\n" + " ft.CREATE_TIME\n" + "\n" |
| | | + "FROM l_wh_form_transfer ft\n" + " LEFT JOIN L_WAREHOUSE_FLOW wf ON ft.id = wf.BUSINESS_FORM_ID\n" |
| | | + " left join L_WH_GOODS_RECORD gr on gr.WAREHOUSE_FLOW_ID = wf.id\n" |
| | | + " LEFT JOIN L_GOODS_WH_RECORD gwr on gwr.WAREHOUSE_FLOW_ID = wf.id\n" |
| | | + " left join L_WH_GOODS g on g.id = gwr.WH_GOODS_ID where ft.BUSINESS_TYPE = 1 GROUP BY gr.BASE_GOODS_TEMPLATE_ID \n"; |