| | |
| | | package com.consum.base.controller; |
| | | |
| | | import cn.hutool.core.util.ReflectUtil; |
| | | import com.consum.base.BaseController; |
| | | import com.consum.base.core.CodeGeneratorEnum; |
| | | import com.consum.base.core.CodeGeneratorService; |
| | |
| | | import com.consum.base.core.utils.CommonUtil; |
| | | import com.consum.base.core.utils.MapUtils; |
| | | import com.consum.base.core.utils.MapperUtil; |
| | | import com.consum.base.pojo.LWhFormProcureGoodsParams; |
| | | import com.consum.base.core.utils.PageUtil; |
| | | import com.consum.base.pojo.LWhFormProcureGoodsInfoParam; |
| | | import com.consum.base.pojo.LWhFormProcureParam; |
| | | import com.consum.base.pojo.LWhProcureModelParams; |
| | | import com.consum.base.pojo.query.FormProcureQryDto; |
| | | import com.consum.base.pojo.response.FormProcureVO; |
| | | import com.consum.base.pojo.response.FromProcureTemplateInfoVO; |
| | | import com.consum.base.pojo.response.GoodsModelVO; |
| | | import com.consum.base.pojo.response.LWhFormProcureExtendVO; |
| | | import com.consum.base.pojo.response.LWhFormProcureGoodsVO; |
| | | import com.consum.base.service.BaseGoodsTemplateServiceImpl; |
| | | import com.consum.base.service.BaseWarehouseServiceImpl; |
| | | import com.consum.base.service.FinSysTenantServiceImpl; |
| | | import com.consum.base.service.LOrgSupplierServiceImpl; |
| | | import com.consum.base.service.LWhFormProcureCoreService; |
| | | import com.consum.base.service.LWhFormProcureGoodsService; |
| | | import com.consum.base.service.LWhFormProcureService; |
| | | import com.consum.base.service.LWhGoodsService; |
| | | import com.consum.base.service.LWhProcureModelService; |
| | | import com.consum.model.po.BaseGoodsTemplate; |
| | | import com.consum.model.po.BaseWarehouse; |
| | | import com.consum.model.po.FinSysTenantUser; |
| | | import com.consum.model.po.LOrgSupplier; |
| | | import com.consum.model.po.LWhFormProcure; |
| | | import com.consum.model.po.LWhFormProcureGoods; |
| | | import com.consum.model.po.LWhProcureModel; |
| | | import com.consum.base.pojo.LWhProcureModelParam; |
| | | import com.consum.base.pojo.query.FormProcureQry; |
| | | 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 io.swagger.annotations.ApiImplicitParam; |
| | | import io.swagger.annotations.ApiImplicitParams; |
| | | import io.swagger.annotations.ApiOperation; |
| | | import java.lang.reflect.Field; |
| | | import java.util.ArrayList; |
| | | import java.util.HashMap; |
| | | import java.util.HashSet; |
| | | import java.util.List; |
| | | import java.util.Map; |
| | | import java.util.Set; |
| | | import javax.annotation.Resource; |
| | | import org.apache.commons.compress.utils.Lists; |
| | | import org.springframework.beans.BeanUtils; |
| | | import org.springframework.web.bind.annotation.DeleteMapping; |
| | | import org.springframework.web.bind.annotation.GetMapping; |
| | | import org.springframework.web.bind.annotation.PostMapping; |
| | | import org.springframework.web.bind.annotation.RequestBody; |
| | | import org.springframework.web.bind.annotation.RequestMapping; |
| | | import org.springframework.web.bind.annotation.RestController; |
| | | import org.springframework.web.bind.annotation.*; |
| | | |
| | | import javax.annotation.Resource; |
| | | import java.lang.reflect.Field; |
| | | import java.util.*; |
| | | |
| | | /** |
| | | * @ClassName LWhFormProcureController |
| | |
| | | * @Description 新增 |
| | | */ |
| | | @PostMapping("/add") |
| | | public ResponseValue add(@RequestBody LWhFormProcureParam param) { |
| | | public ResponseValue add() { |
| | | LWhFormProcureParam param = CommonUtil.getObjFromReqBody(LWhFormProcureParam.class); |
| | | LWhFormProcureParam param2 = new LWhFormProcureParam(); |
| | | CommonUtil.copyProperties(param, param2); |
| | | param = param2; |
| | | return this.add(param); |
| | | } |
| | | |
| | | private ResponseValue add(LWhFormProcureParam param) { |
| | | Long warehouseId = param.getWarehouseId(); |
| | | if (param.getWarehouseId() == null) { |
| | | return ResponseValue.error("仓库ID不能为空"); |
| | |
| | | FinSysTenantUser sysTenantUser = this.getSysInfo(); |
| | | String tenantId = sysTenantUser.getTenantId(); |
| | | String tenantName = sysTenantUser.getTenantName(); |
| | | // String tenantId = "100"; |
| | | // String tenantName = "河南省分公司"; |
| | | // 只能添加本机构仓库的进货单 |
| | | //?????? |
| | | // |
| | | |
| | | List<LWhFormProcureGoodsParams> procureGoods = param.getProcureGoods(); |
| | | List<LWhFormProcureGoodsInfoParam> procureGoods = param.getProcureGoods(); |
| | | if (CollectionUtils.isEmpty(procureGoods)) { |
| | | return ResponseValue.error("采购单不能为空"); |
| | | } |
| | |
| | | ArrayList<LWhProcureModel> procureModelList = new ArrayList<>(); |
| | | |
| | | for (int i = 0; i < procureGoods.size(); i++) { |
| | | LWhFormProcureGoodsParams procureGoodT = procureGoods.get(i); |
| | | LWhFormProcureGoodsInfoParam procureGoodT = procureGoods.get(i); |
| | | Long baseCategoryId = procureGoodT.getBaseCategoryId(); |
| | | Long baseGoodsTemplateId = procureGoodT.getBaseGoodsTemplateId(); |
| | | String supplier = procureGoodT.getSupplier(); |
| | |
| | | supplierList.add(supplier); |
| | | } |
| | | |
| | | List<LWhProcureModelParams> models = procureGoodT.getModels(); |
| | | List<LWhProcureModelParam> models = procureGoodT.getModels(); |
| | | if (CollectionUtils.isEmpty(models)) { |
| | | return ResponseValue.error("采购单不能为空"); |
| | | } |
| | |
| | | procureGood.setGoodsTemplateName(procureGoodT.getGoodsTemplateName()); |
| | | procureGood.setSupplier(supplier); |
| | | procureGood.setSort(i); |
| | | for (LWhProcureModelParams modelT : models) { |
| | | for (LWhProcureModelParam modelT : models) { |
| | | Integer counts = modelT.getCounts(); |
| | | if (counts == null || counts <= 0) { |
| | | return ResponseValue.error("型号的采购数量只能为正整数"); |
| | |
| | | } |
| | | String modelName = (String) tempGoodsInfo.get("modelname"); |
| | | // 查询型号库存 |
| | | int goodsModelNum = lWhGoodsService.queryGoodsModelNum(0, warehouseId, baseGoodsModelsId, (short) 1, null); |
| | | int goodsModelNum = lWhGoodsService.queryGoodsModelNum(0, warehouseId, baseGoodsModelsId, 1, null); |
| | | LWhProcureModel model = new LWhProcureModel(); |
| | | model.setId(NumberGenerator.getLongSequenceNumber()); |
| | | model.setFromProcureGoodsId(fromProcureGoodsId); |
| | |
| | | model.setCounts(counts); |
| | | model.setWorehouseCount(goodsModelNum); |
| | | model.setSupplier(supplier); |
| | | model.setTotalAmount(price * counts); |
| | | procureModelList.add(model); |
| | | } |
| | | procureGoodList.add(procureGood); |
| | |
| | | */ |
| | | @ApiOperation(value = "采购单列表查询", notes = "采购单列表查询") |
| | | @ApiImplicitParams({ |
| | | @ApiImplicitParam(name = "param", value = "采购查询条件", required = true, dataType = "FormProcureQryDto", paramType = "query") |
| | | @ApiImplicitParam(name = "param", value = "采购查询条件", required = true, dataType = "FormProcureQryDto", paramType = "query") |
| | | }) |
| | | @GetMapping("/list") |
| | | public ResponseValue queryFormProcureList(FormProcureQryDto param) { |
| | | public ResponseValue queryFormProcureList() { |
| | | FormProcureQry param = CommonUtil.getObjFromReq(FormProcureQry.class); |
| | | FormProcureQry param2 = new FormProcureQry(); |
| | | CommonUtil.copyProperties(param, param2); |
| | | param = param2; |
| | | S_user_core currentUser = this.getCurrentUser(); |
| | | if (currentUser == null) { |
| | | return ResponseValue.error("登录用户信息不存在"); |
| | | } |
| | | FinSysTenantUser sysInfo = getSysInfo(); |
| | | |
| | | //只能查询本级 及以下机构的进货单 |
| | | //?????? |
| | | |
| | | GenericPager genericPager = lWhFormProcureService.queryFormProcureList(param); |
| | | /*当前登录人只能看到自己机构下的列表*/ |
| | | FinSysTenantUser sysInfo = this.getSysInfo(); |
| | | String tenantId = sysInfo.getTenantId(); |
| | | if (param.getAgencyId() == null) { |
| | | param.setAgencyId(Long.valueOf(tenantId)); |
| | | } |
| | | PageUtil genericPager = lWhFormProcureService.queryFormProcureList(param); |
| | | List<LWhFormProcure> data = genericPager.getDatas(); |
| | | ArrayList<FormProcureVO> result = new ArrayList<>(); |
| | | if (!CollectionUtils.isEmpty(data)) { |
| | |
| | | |
| | | // 查询型号数量 |
| | | String sql = "select fpg.id,BASE_CATEGORY_ID ,BASE_GOODS_TEMPLATE_ID ,GOODS_TEMPLATE_NAME ,sum(counts) count " |
| | | + "from L_WH_FORM_PROCURE_GOODS fpg left join L_WH_PROCURE_MODEL pm on fpg.id = pm.FROM_PROCURE_GOODS_ID " |
| | | + "where fpg.WH_FORM_PROCURE_ID =:id group by pm.FROM_PROCURE_GOODS_ID"; |
| | | + "from L_WH_FORM_PROCURE_GOODS fpg left join L_WH_PROCURE_MODEL pm on fpg.id = pm.FROM_PROCURE_GOODS_ID " |
| | | + "where fpg.WH_FORM_PROCURE_ID =:id group by pm.FROM_PROCURE_GOODS_ID"; |
| | | Map<String, Object> paramMap = new HashMap<>(); |
| | | paramMap.put("id", item.getId()); |
| | | List<Map<String, Object>> procureModelList = lWhProcureModelService.select(sql, paramMap); |
| | | List<Map<String, Object>> procureModelList = lWhProcureModelService.select(sql, paramMap, new MapperUtil()); |
| | | for (Map<String, Object> map : procureModelList) { |
| | | FromProcureTemplateInfoVO procureTemplateInfoVO = MapUtils.convertMapToObj(MapUtils.toReplaceKeyLow(map), FromProcureTemplateInfoVO.class); |
| | | FromProcureTemplateInfoVO procureTemplateInfoVO = MapUtils.convertMapToObj(map, FromProcureTemplateInfoVO.class); |
| | | procureTemplateInfoList.add(procureTemplateInfoVO); |
| | | } |
| | | fromProcureVO.setFromProcureTemplateInfoList(procureTemplateInfoList); |
| | |
| | | } |
| | | try { |
| | | Field fieldDatas = GenericPager.class.getDeclaredField("datas"); |
| | | fieldDatas.setAccessible(true); |
| | | fieldDatas.set(genericPager, result); |
| | | // fieldDatas.setAccessible(true); |
| | | // fieldDatas.set(genericPager, result); |
| | | ReflectUtil.setFieldValue(genericPager, fieldDatas, result); |
| | | } catch (Exception e) { |
| | | e.printStackTrace(); |
| | | } |
| | | genericPager.setDatas(result); |
| | | return ResponseValue.success(genericPager); |
| | | } |
| | | |
| | |
| | | * @Description 编辑 |
| | | */ |
| | | @PostMapping("/edit") |
| | | public ResponseValue edit(@RequestBody LWhFormProcureParam param) { |
| | | public ResponseValue edit() { |
| | | LWhFormProcureParam param = CommonUtil.getObjFromReqBody(LWhFormProcureParam.class); |
| | | LWhFormProcureParam param2 = new LWhFormProcureParam(); |
| | | CommonUtil.copyProperties(param, param2); |
| | | param = param2; |
| | | ResponseValue delFlag = delById(param.getId()); |
| | | if (delFlag.getCode() == ResponseValue.CODE_SUCCESS) { |
| | | return this.add(param); |
| | |
| | | return ResponseValue.error("采购单id为空"); |
| | | } |
| | | LWhFormProcure lWhFormProcure = lWhFormProcureService.get(new LWhFormProcure(id)); |
| | | if (lWhFormProcure == null) { |
| | | return ResponseValue.error("采购单不存在"); |
| | | } |
| | | LWhFormProcureExtendVO lWhFormProcureExtendVO = new LWhFormProcureExtendVO(); |
| | | BeanUtils.copyProperties(lWhFormProcure, lWhFormProcureExtendVO); |
| | | |
| | |
| | | lWhFormProcureGoods.setWhFormProcureId(id); |
| | | List<LWhFormProcureGoods> formProcureGoods = lWhFormProcureGoodsService.select(lWhFormProcureGoods); |
| | | |
| | | Field fieldModels = null; |
| | | try { |
| | | fieldModels = LWhFormProcureGoodsVO.class.getDeclaredField("models"); |
| | | } catch (NoSuchFieldException e) { |
| | | e.printStackTrace(); |
| | | } |
| | | fieldModels.setAccessible(true); |
| | | // Field fieldModels = null; |
| | | // try { |
| | | // fieldModels = LWhFormProcureGoodsVO.class.getDeclaredField("models"); |
| | | // } catch (NoSuchFieldException e) { |
| | | // e.printStackTrace(); |
| | | // } |
| | | // fieldModels.setAccessible(true); |
| | | ArrayList<LWhFormProcureGoodsVO> procureGoodsVOList = new ArrayList<>(); |
| | | for (LWhFormProcureGoods formProcureGood : formProcureGoods) { |
| | | LWhFormProcureGoodsVO lWhFormProcureGoodsVO = new LWhFormProcureGoodsVO(); |
| | |
| | | Map<String, Object> paramMap = new HashMap<>(); |
| | | paramMap.put("formProcureGoodId", formProcureGood.getId()); |
| | | String sql = "SELECT\n" + "pm.BASE_GOODS_MODELS_ID,pm.BASE_GOODS_MODELS_NAME,pm.PRICE,pm.COUNTS,pm.WOREHOUSE_COUNT,bgm.unit " + "FROM\n" |
| | | + "\tl_wh_procure_model pm\n" |
| | | + "\tLEFT JOIN base_goods_models bgm on pm.BASE_GOODS_MODELS_ID = bgm.id where pm.FROM_PROCURE_GOODS_ID =:formProcureGoodId"; |
| | | + "\tl_wh_procure_model pm\n" |
| | | + "\tLEFT JOIN base_goods_models bgm on pm.BASE_GOODS_MODELS_ID = bgm.id where pm.FROM_PROCURE_GOODS_ID =:formProcureGoodId"; |
| | | List<Map<String, Object>> procureModelList = lWhProcureModelService.select(sql, paramMap, new MapperUtil()); |
| | | List<GoodsModelVO> goodsModelVOList = Lists.newArrayList(); |
| | | procureModelList.forEach(item -> { |
| | | GoodsModelVO goodsModelVO = MapUtils.convertMapToObj(item, GoodsModelVO.class); |
| | | goodsModelVOList.add(goodsModelVO); |
| | | }); |
| | | fieldModels.set(lWhFormProcureGoodsVO, goodsModelVOList); |
| | | // fieldModels.set(lWhFormProcureGoodsVO, goodsModelVOList); |
| | | ReflectUtil.setFieldValue(lWhFormProcureGoodsVO, "models", goodsModelVOList); |
| | | |
| | | procureGoodsVOList.add(lWhFormProcureGoodsVO); |
| | | } |
| | | lWhFormProcureExtendVO.setProcureGoods(procureGoodsVOList); |
| | |
| | | @ApiImplicitParams({@ApiImplicitParam(name = "param", value = "采购单明细查询", required = true, dataType = "FormProcureQryDto", paramType = "query")}) |
| | | @GetMapping("detail/list") |
| | | public ResponseValue queryFormProcureDetailList() { |
| | | FormProcureQryDto formProcureQryDto = CommonUtil.getObjFromReq(FormProcureQryDto.class); |
| | | FormProcureQry formProcureQry = CommonUtil.getObjFromReq(FormProcureQry.class); |
| | | FormProcureQry param2 = new FormProcureQry(); |
| | | CommonUtil.copyProperties(formProcureQry, param2); |
| | | formProcureQry = param2; |
| | | |
| | | S_user_core currentUser = this.getCurrentUser(); |
| | | if (currentUser == null) { |
| | | return ResponseValue.error("登录用户信息不存在"); |
| | | } |
| | | |
| | | GenericPager genericPager = lWhFormProcureService.queryFormProcureDetailList(formProcureQryDto); |
| | | GenericPager genericPager = lWhFormProcureService.queryFormProcureDetailList(formProcureQry); |
| | | return ResponseValue.success(genericPager); |
| | | } |
| | | } |