futian.liu
2023-11-29 ff2d77915707227283808edc08daeb411687d44f
调拨入库导出
4个文件已添加
3个文件已修改
209 ■■■■ 已修改文件
consum-base/src/main/java/com/consum/base/controller/LWhFormTransferController.java 38 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
consum-base/src/main/java/com/consum/base/pojo/excel/TemplateExcelExport1.java 32 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
consum-base/src/main/java/com/consum/base/pojo/excel/TemplateExcelTransfer.java 24 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
consum-base/src/main/java/com/consum/base/pojo/request/RecordInfoParam.java 19 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
consum-base/src/main/java/com/consum/base/service/BaseGoodsModelsServiceImpl.java 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
consum-base/src/main/java/com/consum/base/service/LWhFormTransferServiceImpl.java 94 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
deploy-jar-single/src/main/resources/import/调拨入库单.xlsx 补丁 | 查看 | 原始文档 | blame | 历史
consum-base/src/main/java/com/consum/base/controller/LWhFormTransferController.java
@@ -1,5 +1,7 @@
package com.consum.base.controller;
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;
@@ -14,6 +16,7 @@
import com.consum.base.pojo.query.TransferQry;
import com.consum.base.pojo.request.LWhFormTransferParam;
import com.consum.base.pojo.request.ProcureModelInfoParam;
import com.consum.base.pojo.request.RecordInfoParam;
import com.consum.base.pojo.response.FormTransferVO;
import com.consum.base.pojo.response.FromTransferTemplateInfoVO;
import com.consum.base.pojo.response.LWHFromTransferExtendVO;
@@ -30,7 +33,6 @@
import com.consum.model.po.LWhFormTransfer;
import com.consum.model.po.LWhProcureModelUser;
import com.consum.model.po.LWhProcureModelUserRecord;
import com.consum.model.vo.LWhFormOutputVo;
import com.iplatform.model.po.S_user_core;
import com.walker.db.page.GenericPager;
import com.walker.infrastructure.utils.CollectionUtils;
@@ -40,14 +42,19 @@
import io.swagger.annotations.ApiImplicitParam;
import io.swagger.annotations.ApiImplicitParams;
import io.swagger.annotations.ApiOperation;
import java.io.IOException;
import java.io.OutputStream;
import java.lang.reflect.Field;
import java.net.URLEncoder;
import java.util.ArrayList;
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;
@@ -302,12 +309,18 @@
     * @Date 2023/10/31
     */
    @GetMapping("/export")
    public ResponseValue export(Long id) {
        if (id == null) {
            return ResponseValue.error("调拨单id为空");
    public void export(Long id, HttpServletResponse response) throws IOException {
        TemplateExportParams params = new TemplateExportParams("import/调拨入库单.xlsx");
        Map<String, Object> map = this.lWhFormTransferService.export(id);
        Workbook workbook = ExcelExportUtil.exportExcel(params, map);
        try (OutputStream outputStream = response.getOutputStream()) {
            response.setContentType("application/vnd.openxmlformats-officedocument.spreadsheetml.sheet;charset=utf-8");
            response.setHeader("Content-disposition", "attachment;filename=" + URLEncoder.encode("调拨入库单.xlsx", "utf-8"));
            workbook.write(outputStream);
            workbook.close();
        }
        LWhFormOutputVo vo = this.lWhFormTransferService.export(id, this.getCurrentUser());
        return ResponseValue.success(vo);
    }
@@ -344,19 +357,20 @@
    @PostMapping("/useInfo/update")
    public ResponseValue infoUpdate() {
        List<ProcureModelInfoParam> param = CommonUtil.getObjFromReqBody(List.class);
        List<ProcureModelInfoParam> procureModelInfoParam = Lists.newArrayList();
        procureModelInfoParam.addAll(param);
        RecordInfoParam param = CommonUtil.getObjFromReqBody(RecordInfoParam.class);
        RecordInfoParam recordInfoParam = new RecordInfoParam();
        CommonUtil.copyProperties(param, recordInfoParam);
        param = recordInfoParam;
        S_user_core currentUser = this.getCurrentUser();
        if (currentUser == null) {
            return ResponseValue.error("登录用户信息不存在");
        }
        if (CollectionUtils.isEmpty(procureModelInfoParam)) {
        if (CollectionUtils.isEmpty(param.getRecordInfoList())) {
            return ResponseValue.error("参数错误");
        }
        Map<Long, List<ProcureModelInfoParam>> collect = procureModelInfoParam.stream()
        Map<Long, List<ProcureModelInfoParam>> collect = param.getRecordInfoList().stream()
            .collect(Collectors.groupingBy(ProcureModelInfoParam::getBaseGoodModelId));
        for (Map.Entry<Long, List<ProcureModelInfoParam>> entry : collect.entrySet()) {
            Long baseGoodModelId = entry.getKey();
@@ -375,7 +389,7 @@
            lWhProcureModelUserRecordService.insert(lWhProcureModelUserRecord);
            List<LWhProcureModelUser> procureModelUserList = Lists.newArrayList();
            if (CollectionUtils.isEmpty(procureModelInfoList)) {
            if (!CollectionUtils.isEmpty(procureModelInfoList)) {
                for (ProcureModelInfoParam item : procureModelInfoList) {
                    LWhProcureModelUser lWhProcureModelUser = new LWhProcureModelUser();
                    lWhProcureModelUser.setId(IdUtil.generateId());
consum-base/src/main/java/com/consum/base/pojo/excel/TemplateExcelExport1.java
New file
@@ -0,0 +1,32 @@
package com.consum.base.pojo.excel;
import lombok.Data;
/**
 * @author asus
 * @version 1.0
 * @description: å¯¼å‡ºè½¬æ¢å¯¹è±¡
 * @date 2023/11/27 15:31
 */
@Data
public class TemplateExcelExport1 {
    private String businessFormCode;
    private String tenantName;
    private String goodsName;
    private String goodsModeName;
    private Integer num;
    private Integer totalAmount;
    private String remark;
    private int price;
    private String warehouseName;
}
consum-base/src/main/java/com/consum/base/pojo/excel/TemplateExcelTransfer.java
New file
@@ -0,0 +1,24 @@
package com.consum.base.pojo.excel;
import lombok.Data;
/**
 * @author asus
 * @version 1.0
 * @description: TODO
 * @date 2023/11/29 15:21
 */
@Data
public class TemplateExcelTransfer {
    private String businessFormCode;
    private String operatorName;
    private Long createTime;
    private String outAgencyName;
    private String goodsName;
    private String baseGoodsModelsName;
    private Integer num;
    private Integer price;
    private Integer totalAmount;
    private String remark;
}
consum-base/src/main/java/com/consum/base/pojo/request/RecordInfoParam.java
New file
@@ -0,0 +1,19 @@
package com.consum.base.pojo.request;
import io.swagger.annotations.ApiModelProperty;
import java.util.List;
import lombok.Data;
/**
 * @author asus
 * @version 1.0
 * @description: ä½¿ç”¨äººä¿®æ”¹è®°å½•
 * @date 2023/11/29 15:42
 */
@Data
public class RecordInfoParam {
    @ApiModelProperty("使用人修改记录")
    List<ProcureModelInfoParam> recordInfoList;
}
consum-base/src/main/java/com/consum/base/service/BaseGoodsModelsServiceImpl.java
@@ -136,7 +136,7 @@
     * @param baseGoodsModelsId
     * @return
     */
    private String QUERY_GOODS_MODEL_INFO = "SELECT goodsTemp.CATEGORY_ID,goodsTemp.CATEGORY_NAME,goodsTemp.id goods_Id,goodsTemp.GOODS_NAME,model.MODEL_NAME,model.id base_Goods_Models_Id,model.UNIT FROM BASE_GOODS_MODELS model LEFT JOIN BASE_GOODS_TEMPLATE goodsTemp ON model.GOODS_TEMPLATES_ID=goodsTemp.id";
    private String QUERY_GOODS_MODEL_INFO = "SELECT CLASSIFICATION type, goodsTemp.CATEGORY_ID,goodsTemp.CATEGORY_NAME,goodsTemp.id goods_Id,goodsTemp.GOODS_NAME,model.MODEL_NAME,model.id base_Goods_Models_Id,model.UNIT FROM BASE_GOODS_MODELS model LEFT JOIN BASE_GOODS_TEMPLATE goodsTemp ON model.GOODS_TEMPLATES_ID=goodsTemp.id";
    public List<Map<String, Object>> queryGoodsModelInfo(Long baseGoodsModelsId) {
        StringBuilder sql = new StringBuilder(QUERY_GOODS_MODEL_INFO);
consum-base/src/main/java/com/consum/base/service/LWhFormTransferServiceImpl.java
@@ -8,26 +8,21 @@
import com.consum.base.pojo.LWhFormTransferGoodsInfoParam;
import com.consum.base.pojo.LWhProcureModelUserParam;
import com.consum.base.pojo.LWhTransferModelParam;
import com.consum.base.pojo.excel.TemplateExcelTransfer;
import com.consum.base.pojo.query.TransferQry;
import com.consum.base.pojo.request.LWhFormTransferParam;
import com.consum.base.pojo.response.DepartGoodsUseInfo;
import com.consum.base.pojo.response.FormTransferGoodsVO;
import com.consum.base.pojo.response.GoodsModelVO;
import com.consum.base.pojo.response.LWHFromTransferExtendVO;
import com.consum.model.po.BaseGoodsModels;
import com.consum.model.po.BaseWarehouse;
import com.consum.model.po.BaseWarehouseManager;
import com.consum.model.po.FinSysTenant;
import com.consum.model.po.FinSysTenantUser;
import com.consum.model.po.LWhFormOutput;
import com.consum.model.po.LWhFormTransfer;
import com.consum.model.po.LWhGoodsRecord;
import com.consum.model.po.LWhProcureModel;
import com.consum.model.po.LWhProcureModelUser;
import com.consum.model.po.LWhProcureModelUserRecord;
import com.consum.model.vo.LWhFormOutputVo;
import com.consum.model.vo.LWhGoodsRecordVo;
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;
@@ -76,6 +71,8 @@
    private LWhProcureModelUserRecordServiceImpl lWhProcureModelUserRecordService;
    @Autowired
    private BaseWarehouseManagerServiceImpl baseWarehouseManagerService;
    @Autowired
    private BaseGoodsTemplateServiceImpl baseGoodsTemplateService;
    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 "
@@ -191,7 +188,7 @@
            for (LWhTransferModelParam model : transferGoodsInfo.getModels()) {
                LWhProcureModel lWhProcureModel = new LWhProcureModel();
                lWhProcureModel.setId(IdUtil.generateId());
                // æŒ‘拨业务类型转换到物品类型
                // è°ƒæ‹¨ä¸šåŠ¡ç±»åž‹è½¬æ¢åˆ°ç‰©å“ç±»åž‹
                // ç‰©å“ç±»åž‹ 1 é‡‡è´­2 è°ƒæ‹¨ 3出库4部门分发
                Long baseGoodsModelsId = model.getBaseGoodsModelsId();
                if (businessType == 0) {
@@ -204,16 +201,18 @@
                lWhProcureModel.setBusinessId(lWhFormTransferId);
                lWhProcureModel.setBaseGoodsModelsId(baseGoodsModelsId);
                //根据型号id查询型号
                BaseGoodsModels baseGoodsModels = this.baseGoodsModelsService.get(new BaseGoodsModels(baseGoodsModelsId));
                if (baseGoodsModels != null) {
                    lWhProcureModel.setBaseGoodsModelsName(baseGoodsModels.getModelName());
                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");
                    lWhProcureModel.setBaseGoodsModelsName(modelName.toString());
                }
                lWhProcureModel.setSupplier(transferGoodsInfo.getSupplier());
                //3.当业务类型为部门分发时 æ·»åŠ éƒ¨é—¨åˆ†å‘è®°å½•å’Œä½¿ç”¨äºº
                // å•据类型 1 é‡‡è´­2 è°ƒæ‹¨ 3出库4部门分发
                //部门分发类型
                if (businessType == 1) {
                if (businessType == 1 && "A".equals(baseModelMap.get("type"))) {
                    lWhProcureModel.setBusinessType(4);
                    LWhProcureModelUserRecord lWhProcureModelUserRecord = new LWhProcureModelUserRecord();
                    lWhProcureModelUserRecord.setId(IdUtil.generateId());
@@ -405,36 +404,51 @@
     * @Author å¢åº†é˜³
     * @Date 2023/10/31
     */
    public LWhFormOutputVo export(Long id, S_user_core currentUser) {
        LWhFormOutputVo result = new LWhFormOutputVo();
        long dealTime = DateUtils.getDateTimeNumber(System.currentTimeMillis());
        //1.根据调拨单生成出库单
        Long outWarehouseFormId = this.lWhFormOutputCoreService.createOutFormByTransId(id, currentUser, dealTime);
        //2.出库单id查询出库单
        LWhFormOutput lWhFormOutput = this.lWhFormOutputService.get(new LWhFormOutput(outWarehouseFormId));
        if (lWhFormOutput != null) {
            BeanUtils.copyProperties(lWhFormOutput, result);
        }
        //3.根据进出库流水总表id查询l_wh_goods_record
        LWhGoodsRecord record = new LWhGoodsRecord();
        record.setWarehouseFlowId(lWhFormOutput.getWarehouseFlowId());
        List<LWhGoodsRecord> recordList = this.lWhGoodsRecordService.select(record);
        List<LWhGoodsRecordVo> voList = new ArrayList<>();
        if (!CollectionUtils.isEmpty(recordList)) {
            for (LWhGoodsRecord lWhGoodsRecord : recordList) {
                LWhGoodsRecordVo vo = new LWhGoodsRecordVo();
                BeanUtils.copyProperties(lWhGoodsRecord, vo);
                //根据型号id查询型号
                BaseGoodsModels baseGoodsModels = baseGoodsModelsService.get(new BaseGoodsModels(id));
                if (baseGoodsModels != null) {
                    vo.setUnit(baseGoodsModels.getUnit());
                }
                voList.add(vo);
            }
        }
        result.setRecordVoList(voList);
    public Map<String, Object> export(Long id) {
        String sql = "SELECT\n"
            + "\tft.BUSINESS_FORM_CODE,\n"
            + "\tft.OPERATOR_NAME,\n"
            + "\tft.CREATE_TIME,\n"
            + "\tft.OUT_AGENCY_NAME,\n"
            + "\tGOODS_NAME,\n"
            + "\tpm.BASE_GOODS_MODELS_NAME,\n"
            + "\tpm.COUNTS num,\n"
            + "\tpm.PRICE,\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";
        Map<String, Object> paramts = new HashMap<>();
        paramts.put("id", id);
        List<Map<String, Object>> select = this.select(sql, paramts, new MapperUtil());
        List<TemplateExcelTransfer> list = Lists.newArrayList();
        select.forEach(item -> {
            TemplateExcelTransfer templateExcelTransfer = MapUtils.convertMapToObj(item, TemplateExcelTransfer.class);
            list.add(templateExcelTransfer);
        });
        return result;
        int countNum = list.stream().filter(item -> item.getNum() != null).mapToInt(TemplateExcelTransfer::getNum).sum();
        int totalAmount = list.stream().filter(export -> export.getTotalAmount() != null).mapToInt(TemplateExcelTransfer::getTotalAmount).sum();
        Optional<TemplateExcelTransfer> first = list.stream().findFirst();
        TemplateExcelTransfer entity = first.get();
        String businessFormCode = entity.getBusinessFormCode();
        Long createTime = entity.getCreateTime();
        String operatorName = entity.getOperatorName();
        Map<String, Object> map = new HashMap<>();
        map.put("code", businessFormCode);
        map.put("date", DateUtils.toShowDate(createTime));
        map.put("name", operatorName);
        map.put("countNum", countNum);
        map.put("totalAmount", totalAmount);
        map.put("data", list);
        return map;
    }
    /**
deploy-jar-single/src/main/resources/import/µ÷²¦Èë¿âµ¥.xlsx
Binary files differ