From ddaf74466d92dffb9ba8242a071f151f9a7e0e41 Mon Sep 17 00:00:00 2001 From: luqingyang <lqy5492@163.com> Date: 星期二, 31 十月 2023 17:04:35 +0800 Subject: [PATCH] Merge remote-tracking branch 'origin/master' --- consum-base/src/main/java/com/consum/base/service/LWhFormInventoryServiceImpl.java | 173 +++++++++++++++++++++++++++++++++++++++++++++++++++++++++ 1 files changed, 173 insertions(+), 0 deletions(-) diff --git a/consum-base/src/main/java/com/consum/base/service/LWhFormInventoryServiceImpl.java b/consum-base/src/main/java/com/consum/base/service/LWhFormInventoryServiceImpl.java new file mode 100644 index 0000000..5076e20 --- /dev/null +++ b/consum-base/src/main/java/com/consum/base/service/LWhFormInventoryServiceImpl.java @@ -0,0 +1,173 @@ +package com.consum.base.service; + +import com.consum.base.core.CodeGeneratorEnum; +import com.consum.base.core.CodeGeneratorService; +import com.consum.base.pojo.LWhFormInventoryDto; +import com.consum.base.pojo.LWhFormInventoryParam; +import com.consum.base.util.IdUtil; +import com.consum.model.po.*; +import com.iplatform.model.po.S_user_core; +import com.walker.db.page.GenericPager; +import com.walker.infrastructure.utils.DateUtils; +import com.walker.infrastructure.utils.StringUtils; +import com.walker.jdbc.service.BaseServiceImpl; +import lombok.extern.slf4j.Slf4j; +import org.springframework.beans.BeanUtils; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.stereotype.Service; +import org.springframework.util.CollectionUtils; + +import java.util.ArrayList; +import java.util.HashMap; +import java.util.List; +import java.util.Map; + +/** + * @Description 鐩樼偣 + * @Author 鍗㈠簡闃� + * @Date 2023/10/23 + */ +@Slf4j +@Service +public class LWhFormInventoryServiceImpl extends BaseServiceImpl { + + @Autowired + private CodeGeneratorService codeGeneratorService; + @Autowired + private BaseWarehouseServiceImpl baseWarehouseService; + @Autowired + private FinSysTenantUserServiceImpl finSysTenantUserService; + @Autowired + private LWhFormInventoryGoodsServiceImpl inventoryGoodsService; + + + private static final String QUERY_LIST = "select * from l_wh_form_inventory where 1=1 "; + + private static final String QUERY_PD_List = "SELECT bgt.GOODS_NAME goodsName,model.MODEL_NAME modelName,bgt.CLASSIFICATION,model.UNIT,\n" + + " record.endCount,bgt.ID goodsTemplateId,model.ID modelsId\n" + + "FROM BASE_GOODS_MODELS model\n" + + " LEFT JOIN (SELECT COUNT(1) endCount, BASE_GOODS_MODELS_ID\n" + + " FROM L_WH_GOODS\n" + + " WHERE WAREHOUSE_TYPE = 0\n" + + " AND WAREHOUSE_ID = 1\n" + + " AND STATES = ?\n" + + " GROUP BY BASE_GOODS_MODELS_ID) record ON record.BASE_GOODS_MODELS_ID = model.id\n" + + "left join base_goods_template bgt on bgt.ID = model.GOODS_TEMPLATES_ID; "; + + /** + * @Description 鏂板 + * @Author 鍗㈠簡闃� + * @Date 2023/10/31 + * @param param + * @param currentUser 褰撳墠鐧诲綍鐢ㄦ埛 + * @param operatorUser 鐩樼偣浜� + * @param operatorUser2 鐩戠洏浜� + * @return + */ + public int add(LWhFormInventoryParam param, FinSysTenantUser currentUser, S_user_core operatorUser, S_user_core operatorUser2) { + //鏂板鐩樼偣鍗� + LWhFormInventory lWhFormInventory = new LWhFormInventory(); + BeanUtils.copyProperties(param,lWhFormInventory); + lWhFormInventory.setId(IdUtil.generateId()); + //鐩樼偣鍗曠紪鐮� + String businessFormCode = codeGeneratorService.createBusinessFormCode(CodeGeneratorEnum.Inventory); + lWhFormInventory.setBusinessFormCode(businessFormCode); + //鏍规嵁浠撳簱id鏌ヨ浠撳簱 + BaseWarehouse baseWarehouse = this.baseWarehouseService.getById(param.getWarehouseId()); + if (baseWarehouse != null) { + lWhFormInventory.setWarehouseName(baseWarehouse.getWarehouseName()); + } + lWhFormInventory.setOperatorName(operatorUser.getUser_name()); + lWhFormInventory.setOperatorName2(operatorUser2.getUser_name()); + lWhFormInventory.setStates(0); + lWhFormInventory.setAgencyId(Long.valueOf(currentUser.getTenantId())); + lWhFormInventory.setAgencyName(currentUser.getTenantName()); + lWhFormInventory.setCreatorId(currentUser.getSysUserId()); + lWhFormInventory.setCreatorName(currentUser.getUserName()); + lWhFormInventory.setCreateTime(DateUtils.getDateTimeNumber(System.currentTimeMillis())); + + return this.insert(lWhFormInventory); + } + + /** + * @Description 鐩樼偣鍗曞垪琛ㄦ煡璇� + * @Author 鍗㈠簡闃� + * @Date 2023/10/31 + */ + public GenericPager<LWhFormInventory> queryList(LWhFormInventoryParam param, FinSysTenantUser sysInfo) { + StringBuilder sql = new StringBuilder(QUERY_LIST); + HashMap<String, Object> paramts = new HashMap<>(); + + //鐩樼偣鍗曞彿 + if (!StringUtils.isEmpty(param.getBusinessFormCode())) { + sql.append(" and BUSINESS_FORM_CODE like:BUSINESS_FORM_CODE "); + paramts.put("BUSINESS_FORM_CODE", StringUtils.CHAR_PERCENT + param.getBusinessFormCode() + StringUtils.CHAR_PERCENT); + } + //鐩樼偣鍗曞悕绉� + if (!StringUtils.isEmpty(param.getBusinessFormName())) { + sql.append(" and BUSINESS_FORM_NAME =:BUSINESS_FORM_NAME "); + paramts.put("BUSINESS_FORM_NAME", StringUtils.CHAR_PERCENT + param.getBusinessFormName() + StringUtils.CHAR_PERCENT); + } + //浠撳簱缂栧彿 + if (param.getWarehouseId() != null) { + sql.append(" and WAREHOUSE_ID =:WAREHOUSE_ID "); + paramts.put("WAREHOUSE_ID", param.getWarehouseId()); + } + //鐩樼偣鏃堕棿 + if (param.getInventoryDateStart() != null) { + sql.append(" and INVENTORY_DATE >=:inventoryDateStart "); + paramts.put("inventoryDateStart", param.getInventoryDateStart() * 1000000); + } + if (param.getInventoryDateEnd() != null) { + sql.append(" and INVENTORY_DATE <:inventoryDateEnd "); + paramts.put("inventoryDateEnd", param.getInventoryDateEnd() * 1000000 + 240000); + } + //鏈烘瀯 + sql.append(" and AGENCY_ID =:AGENCY_ID "); + paramts.put("AGENCY_ID", sysInfo.getTenantId()); + + sql.append(" ORDER BY CREATE_TIME DESC "); + return selectSplit(sql.toString(), paramts, new LWhFormInventory()); + } + + /** + * @Description 鐩樼偣 + * @Author 鍗㈠簡闃� + * @Date 2023/10/31 + * @param id 鐩樼偣鍗昳d + */ + public List queryPdList(Long id) { + //1.鏍规嵁鐩樼偣鍗昳d鏌ヨ鐩樼偣鍗� + LWhFormInventory lWhFormInventory = this.get(new LWhFormInventory(id)); + if (lWhFormInventory == null) { + log.error("鐩樼偣澶辫触"); + } + //2.鏌ヨ鐩樼偣鍗曟暟鎹� + List<Map<String, Object>> list = this.select(QUERY_PD_List, new Object[]{lWhFormInventory.getWarehouseId()}); + if (CollectionUtils.isEmpty(list)) { + log.error("鐩樼偣澶辫触"); + return null; + } + //3.鏂板鐩樼偣鍗曠墿鍝佽褰� + int flag = inventoryGoodsService.add(list, lWhFormInventory.getWarehouseId()); + if (flag != list.size()) { + log.error("鏂板鐩樼偣鍗曡褰�"); + return null; + } + //4.鏍规嵁鐩樼偣鍗昳d鏌ヨ鐩樼偣鍗曠墿鍝� + return inventoryGoodsService.getByInventoryId(id); + } + + /** + * 鏆傚瓨 + * @author 鍗㈠簡闃� + * @date 2023/10/31 + */ + public int temporaryStorage(LWhFormInventoryDto dto) { + //1.鏍规嵁鐩樼偣鍗昳d鏌ヨ鐩樼偣鍗� + + //2.鍒犻櫎鐩樼偣鍗曠墿鍝� + //3.鏂板鐩樼偣鍗曠墿鍝� + return 0; + } +} -- Gitblit v1.9.1