haoyahui
2023-11-20 a6acf1f8924a8fabaa4b74f6771ddbe41ab6b204
consum-base/src/main/java/com/consum/base/controller/LWhFormTransferController.java
@@ -1,12 +1,18 @@
package com.consum.base.controller;
import com.consum.base.BaseController;
import com.consum.base.core.utils.IdUtil;
import com.consum.base.core.utils.MapUtils;
import com.consum.base.core.utils.MapperUtil;
import com.consum.base.pojo.LWhFormTransferGoodsInfoParam;
import com.consum.base.pojo.LWhFormTransferParam;
import com.consum.base.pojo.LWhProcureModelParams;
import com.consum.base.pojo.ProcureModelInfoDto;
import com.consum.base.pojo.UseRecordDto;
import com.consum.base.pojo.UseRecordSkuDto;
import com.consum.base.pojo.query.TransferQryDto;
import com.consum.base.pojo.query.TransferQry;
import com.consum.base.pojo.response.FormTransferVO;
import com.consum.base.pojo.response.FromTransferTemplateInfoVO;
import com.consum.base.pojo.response.LWHFromTransferExtendVO;
import com.consum.base.pojo.response.TransferInfoVO;
import com.consum.base.service.BaseGoodsModelsServiceImpl;
import com.consum.base.service.BaseWarehouseServiceImpl;
@@ -15,16 +21,14 @@
import com.consum.base.service.LWhProcureModelService;
import com.consum.base.service.LWhProcureModelUserRecordServiceImpl;
import com.consum.base.service.LWhProcureModelUserServiceImpl;
import com.consum.base.core.utils.IdUtil;
import com.consum.model.po.BaseGoodsModels;
import com.consum.model.po.BaseWarehouse;
import com.consum.model.po.FinSysTenantUser;
import com.consum.model.po.LWhFormTransfer;
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.LWhFormTransferVo;
import com.consum.model.vo.LWhProcureModelVo;
import com.iplatform.model.po.S_user_core;
import com.walker.db.page.GenericPager;
import com.walker.infrastructure.utils.CollectionUtils;
@@ -36,6 +40,7 @@
import io.swagger.annotations.ApiOperation;
import java.lang.reflect.Field;
import java.util.ArrayList;
import java.util.HashMap;
import java.util.List;
import java.util.Map;
import org.apache.commons.compress.utils.Lists;
@@ -54,13 +59,11 @@
 */
@RestController
@RequestMapping("/pc/l/wh/form/transfer")
@Api(tags = "调拨分发管理")
@Api(value = "调拨分发管理", tags = "调拨分发管理")
public class LWhFormTransferController extends BaseController {
    @Autowired
    private LWhFormTransferServiceImpl lWhFormTransferService;
    @Autowired
    private BaseWarehouseServiceImpl baseWarehouseService;
    @Autowired
    private LWhProcureModelService lWhProcureModelService;
    @Autowired
@@ -71,6 +74,8 @@
    private LWhProcureModelUserRecordServiceImpl lWhProcureModelUserRecordService;
    @Autowired
    private BaseGoodsModelsServiceImpl baseGoodsModelsService;
    @Autowired
    private BaseWarehouseServiceImpl baseWarehouseService;
    /**
     * @Description 新增
@@ -78,16 +83,16 @@
    @ApiOperation(value = "单据新增", notes = "单据新增")
    @ApiImplicitParam(name = "param", value = "单据新增", required = true, dataType = "LWhFormTransferParam")
    @PostMapping("/add")
    public ResponseValue add(@RequestBody LWhFormTransferParam param) {
    public ResponseValue add(@RequestBody LWhFormTransferParam param) throws Exception {
        S_user_core currentUser = this.getCurrentUser();
        if (currentUser == null) {
            return ResponseValue.error("登录用户信息不存在");
        }
        List<LWhProcureModelParams> transferGoods = param.getModels();
        List<LWhFormTransferGoodsInfoParam> transferGoods = param.getTransferGoods();
        if (CollectionUtils.isEmpty(transferGoods)) {
            return ResponseValue.error("调拨单不能为空");
        }
        int result = this.lWhFormTransferService.add(param, currentUser, this.getSysInfo());
        int result = this.lWhFormTransferService.add(param, this.getSysInfo());
        if (result > 0) {
            return ResponseValue.success(1);
        }
@@ -98,26 +103,52 @@
     * @Description 列表查询(调拨明细)
     * @Author 卢庆阳
     * @Date 2023/10/30
     * <p>
     * 1.查询调拨单
     * <p>
     * 2.查询物品型号
     */
//    1.查询调拨单
//    2.查询物品型号
    @ApiOperation(value = "单据列表查询", notes = "单据列表查询")
    @ApiImplicitParams({
        @ApiImplicitParam(name = "page", value = "页码", required = true, dataType = "int"),
        @ApiImplicitParam(name = "size", value = "每页条数", required = true, dataType = "int"),
        @ApiImplicitParam(name = "param", value = "条件参数", required = true, dataType = "TransferQry"),
    })
    @GetMapping("/list")
    public ResponseValue queryFormTransferList(TransferQryDto param) {
    public ResponseValue queryFormTransferList(TransferQry param) {
        S_user_core currentUser = this.getCurrentUser();
        if (currentUser == null) {
            return ResponseValue.error("登录用户信息不存在");
        }
        FinSysTenantUser sysInfo = getSysInfo();
        //只能查询本级 及以下机构的调拨单
        //??????
        /*当前登录人只能看到自己机构下的列表*/
        GenericPager genericPager = lWhFormTransferService.queryFormTransferList(param);
        List<LWhFormTransfer> datas = genericPager.getDatas();
        ArrayList<LWhFormTransferVo> newDatas = new ArrayList<>();
        ArrayList<FormTransferVO> result = new ArrayList<>();
        if (!CollectionUtils.isEmpty(datas)) {
            datas.forEach(item -> {
                FormTransferVO formTransferVO = new FormTransferVO();
                BeanUtils.copyProperties(item, formTransferVO);
                List<FromTransferTemplateInfoVO> templateInfoList = Lists.newArrayList();
                // 查询型号数量
                String sql = "SELECT bgt.id,bgm.GOODS_TEMPLATES_ID,GOODS_NAME,sum( counts ) count FROM "
                    + "l_wh_procure_model pm 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 pm.BUSINESS_ID =:id GROUP BY bgm.GOODS_TEMPLATES_ID";
                Map<String, Object> paramMap = new HashMap<>();
                paramMap.put("id", item.getId());
                List<Map<String, Object>> procureModelList = lWhProcureModelService.select(sql, paramMap, new MapperUtil());
                for (Map<String, Object> map : procureModelList) {
                    FromTransferTemplateInfoVO procureTemplateInfoVO = MapUtils.convertMapToObj(map, FromTransferTemplateInfoVO.class);
                    templateInfoList.add(procureTemplateInfoVO);
                }
                formTransferVO.setFromTransferTemplateInfoList(templateInfoList);
                result.add(formTransferVO);
                /*// 查询型号数量
                LWhProcureModel lWhProcureModel = new LWhProcureModel();
                Integer businessType = item.getBusinessType();
                // TODO 调拨=0 分发=1 退回=2
@@ -130,10 +161,6 @@
                        break;
                }
                lWhProcureModel.setBusinessId(item.getId());
                LWhFormTransferVo formTransferExtend = new LWhFormTransferVo();
                BeanUtils.copyProperties(item, formTransferExtend);
                List<LWhProcureModel> models = lWhProcureModelService.select(lWhProcureModel);
                List<LWhProcureModelVo> lWhProcureModelVoList = new ArrayList<>();
                if (!CollectionUtils.isEmpty(models)) {
@@ -153,15 +180,14 @@
                        lWhProcureModelVoList.add(lWhProcureModelVo);
                    });
                }
                formTransferExtend.setModels(lWhProcureModelVoList);
                newDatas.add(formTransferExtend);
                newDatas.add(formTransferExtend);*/
            });
        }
        try {
            Field fieldDatas = GenericPager.class.getDeclaredField("datas");
            fieldDatas.setAccessible(true);
            fieldDatas.set(genericPager, newDatas);
            fieldDatas.set(genericPager, result);
        } catch (Exception e) {
            e.printStackTrace();
        }
@@ -173,13 +199,32 @@
     * @Author 卢庆阳
     * @Date 2023/10/30
     */
    @ApiOperation(value = "根据id查询详情", notes = "根据id查询详情")
    @ApiImplicitParams({
        @ApiImplicitParam(name = "id", value = "调拨单id", required = true, dataType = "Long"),
    })
    @GetMapping("/detail")
    public ResponseValue getById(Long id) {
        if (id == null) {
            return ResponseValue.error("调拨单id为空");
        }
        LWhFormTransferVo vo = this.lWhFormTransferService.getById(id);
        LWHFromTransferExtendVO vo = this.lWhFormTransferService.getById(id);
        return ResponseValue.success(vo);
    }
    @ApiOperation(value = "调拨明细列表", notes = "调拨明细列表")
    @ApiImplicitParams({
        @ApiImplicitParam(name = "param", value = "条件", required = true, dataType = "TransferQry"),
    })
    @GetMapping("/detail/list")
    public ResponseValue queryFormTransferDetailList(TransferQry param) {
        FinSysTenantUser sysInfo = this.getSysInfo();
        if (sysInfo == null) {
            return ResponseValue.error("登录用户信息不存在");
        }
        GenericPager<Map<String, Object>> mapGenericPager = lWhFormTransferService.queryFormTransferDetailList(param);
        return ResponseValue.success(mapGenericPager);
    }
    /**
@@ -188,6 +233,10 @@
     * @author 卢庆阳
     * @date 2023/10/31
     */
    @ApiOperation(value = "撤销", notes = "撤销")
    @ApiImplicitParams({
        @ApiImplicitParam(name = "id", value = "调拨单id", required = true, dataType = "Long"),
    })
    @PostMapping("/updStatus")
    public ResponseValue updateStatus(Long id) {
        if (id == null) {
@@ -203,6 +252,10 @@
     * @Author 卢庆阳
     * @Date 2023/10/31
     */
    @ApiOperation(value = "调拨入库", notes = "调拨入库")
    @ApiImplicitParams({
        @ApiImplicitParam(name = "id", value = "调拨单id", required = true, dataType = "Long"),
    })
    @PostMapping("/income")
    public ResponseValue income(Long id) {
        lWhFormTransferCoreService.doTransferInPut(id, getCurrentUser());
@@ -214,8 +267,26 @@
     * @Author 卢庆阳
     * @Date 2023/10/31
     */
    @ApiOperation(value = "调拨出库", notes = "调拨出库")
    @ApiImplicitParams({
        @ApiImplicitParam(name = "id", value = "调拨单id", required = true, dataType = "Long"),
    })
    @PostMapping("/output")
    public ResponseValue output(Long id) {
        // 出库前 设置出库仓库
        FinSysTenantUser sysTenantUser = this.getSysInfo();
        String agencyId = sysTenantUser.getTenantId();
        List<BaseWarehouse> baseWarehouseList = baseWarehouseService.getByAgencyId(Long.valueOf(agencyId), (short) 1, (short) 1);
        if (CollectionUtils.isEmpty(baseWarehouseList)) {
            return ResponseValue.error("机构无默认仓库!");
        }
        BaseWarehouse baseWarehouse = baseWarehouseList.get(0);
        Long wareHouseId = baseWarehouse.getId();
        String warehouseName = baseWarehouse.getWarehouseName();
        LWhFormTransfer lWhFormTransfer = new LWhFormTransfer(id);
        lWhFormTransfer.setOutWarehouseId(wareHouseId);
        lWhFormTransfer.setOutWarehouseName(warehouseName);
        lWhFormTransferService.update(lWhFormTransfer);
        lWhFormTransferCoreService.doTransferOutPut(id, getCurrentUser());
        return ResponseValue.success();
    }
@@ -238,7 +309,7 @@
    /**
     * 部门物品分发列表明细
     *
     * @param transferQryDto
     * @param transferQry
     * @return
     */
    @ApiOperation(value = "部门物品分发列表明细", notes = "部门物品分发列表明细")
@@ -246,13 +317,13 @@
        @ApiImplicitParam(name = "transferQryDto", value = "调拨单查询条件", required = true)
    })
    @GetMapping("/department/list")
    public ResponseValue departmentTransferList(TransferQryDto transferQryDto) {
    public ResponseValue departmentTransferList(TransferQry transferQry) {
        S_user_core currentUser = this.getCurrentUser();
        if (currentUser == null) {
            return ResponseValue.error("登录用户信息不存在");
        }
        GenericPager<Map<String, Object>> transferInfoDetailsVoGenericPager = this.lWhFormTransferService.queryTransferInfo(transferQryDto);
        GenericPager<Map<String, Object>> transferInfoDetailsVoGenericPager = this.lWhFormTransferService.queryTransferInfo(transferQry);
        return ResponseValue.success(transferInfoDetailsVoGenericPager);
    }
@@ -367,10 +438,22 @@
    @GetMapping("/query/detail")
    public ResponseValue queryDepartmentTransferOrder(Long agencyId) {
        TransferInfoVO transferInfoVO = new TransferInfoVO();
        String sql = "SELECT ft.id,\n"
            + "       ft.BUSINESS_FORM_CODE,\n"
            + "       gr.GOODS_TEMPLATE_NAME,\n"
            + "       gr.BASE_GOODS_TEMPLATE_ID,\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\n"
            + "\n"
            + "\n"
            + "\n"
            + "\n";
        return ResponseValue.success(transferInfoVO);
    }
}