From c17e36e49be715a3305c79625187631184278c19 Mon Sep 17 00:00:00 2001 From: cuijian <cuijian@xalxzn.com> Date: 星期四, 05 六月 2025 09:52:16 +0800 Subject: [PATCH] 申请单入库 --- lxzn-module-tms/src/main/java/org/jeecg/modules/tms/entity/vo/ParaCommonToolVo.java | 3 lxzn-module-tms/src/main/java/org/jeecg/modules/tms/mapper/xml/ToolLedgerDetailMapper.xml | 152 +++++++++++ lxzn-module-tms/src/main/java/org/jeecg/modules/tms/mapper/xml/InStoreDetailMapper.xml | 8 lxzn-module-tms/src/main/java/org/jeecg/modules/tms/entity/vo/InboundDetailVo.java | 6 lxzn-module-tms/src/main/java/org/jeecg/modules/tms/entity/ToolLedgerDetail.java | 4 lxzn-module-tms/src/main/java/org/jeecg/modules/tms/controller/ToolLedgerDetailController.java | 38 ++ lxzn-module-tms/src/main/java/org/jeecg/modules/tms/service/impl/InStoreDetailServiceImpl.java | 10 lxzn-module-tms/src/main/java/org/jeecg/modules/tms/controller/BaseToolsController.java | 51 +++ lxzn-module-tms/src/main/java/org/jeecg/modules/tms/service/IToolLedgerDetailService.java | 4 lxzn-module-tms/src/main/java/org/jeecg/modules/tms/service/impl/ToolLedgerDetailServiceImpl.java | 52 ++++ lxzn-module-tms/src/main/java/org/jeecg/modules/tms/entity/InboundDetail.java | 7 lxzn-module-tms/src/main/java/org/jeecg/modules/tms/mapper/ToolLedgerDetailMapper.java | 6 lxzn-module-tms/src/main/java/org/jeecg/modules/tms/mapper/xml/BaseToolsMapper.xml | 1 lxzn-module-tms/src/main/java/org/jeecg/modules/tms/controller/InboundOrderController.java | 26 + lxzn-module-tms/src/main/java/org/jeecg/modules/tms/service/IInboundOrderService.java | 2 lxzn-module-tms/src/main/java/org/jeecg/modules/tms/mapper/xml/InboundDetailMapper.xml | 2 lxzn-module-tms/src/main/java/org/jeecg/modules/tms/service/impl/InboundOrderServiceImpl.java | 352 ++++++++++++++++++++++++++ 17 files changed, 715 insertions(+), 9 deletions(-) diff --git a/lxzn-module-tms/src/main/java/org/jeecg/modules/tms/controller/BaseToolsController.java b/lxzn-module-tms/src/main/java/org/jeecg/modules/tms/controller/BaseToolsController.java index 6690650..38db085 100644 --- a/lxzn-module-tms/src/main/java/org/jeecg/modules/tms/controller/BaseToolsController.java +++ b/lxzn-module-tms/src/main/java/org/jeecg/modules/tms/controller/BaseToolsController.java @@ -82,6 +82,57 @@ return Result.OK(pageList); } + + /** + * 鏍规嵁鍒嗙被閫夋嫨宸ュ叿 + * + * @param baseTools + * @param pageNo + * @param pageSize + * @param req + * @return + */ + @ApiOperation(value="鏍规嵁鍒嗙被閫夋嫨宸ュ叿", notes="鏍规嵁鍒嗙被閫夋嫨宸ュ叿") + @GetMapping(value = "/queryToolByClassifyId") + public Result<?> queryToolByClassifyId(BaseTools baseTools, + @RequestParam(name="pageNo", defaultValue="1") Integer pageNo, + @RequestParam(name="pageSize", defaultValue="10") Integer pageSize, + HttpServletRequest req) { + Map<String, String[]> parameterMap = req.getParameterMap(); + String[] classifyIds = parameterMap.get("classifyId"); + if (classifyIds != null && classifyIds.length > 0) { + if("1".equals(classifyIds[0])){ + Page<ParaCommonToolVo> page = new Page<ParaCommonToolVo>(pageNo, pageSize); + IPage<ParaCommonToolVo> pageList = baseToolsService.paraCommonToolList(page, parameterMap); + return Result.OK(pageList); + }else if("2".equals(classifyIds[0])){ + Page<ParaHolesToolsVo> page = new Page<ParaHolesToolsVo>(pageNo, pageSize); + IPage<ParaHolesToolsVo> pageList = baseToolsService.paraHolesToolsList(page, parameterMap); + return Result.OK(pageList); + }else if("3".equals(classifyIds[0])){ + Page<ParaThreadingToolVo> page = new Page<ParaThreadingToolVo>(pageNo, pageSize); + IPage<ParaThreadingToolVo> pageList = baseToolsService.paraThreadingToolList(page, parameterMap); + return Result.OK(pageList); + }else if("4".equals(classifyIds[0])){ + Page<ParaMillToolVo> page = new Page<ParaMillToolVo>(pageNo, pageSize); + IPage<ParaMillToolVo> pageList = baseToolsService.paraMillToolList(page, parameterMap); + return Result.OK(pageList); + }else if("5".equals(classifyIds[0])){ + Page<ParaTurningToolsVo> page = new Page<ParaTurningToolsVo>(pageNo, pageSize); + IPage<ParaTurningToolsVo> pageList = baseToolsService.paraTurningToolsList(page, parameterMap); + return Result.OK(pageList); + }else if("6".equals(classifyIds[0])){ + Page<ParaBladeVo> page = new Page<ParaBladeVo>(pageNo, pageSize); + IPage<ParaBladeVo> pageList = baseToolsService.paraBladeList(page, parameterMap); + return Result.OK(pageList); + }else { + return Result.error("璇烽�夋嫨宸ュ叿鍒嗙被"); + } + }else { + return Result.error("璇烽�夋嫨宸ュ叿鍒嗙被"); + } + } + /** * 鍒嗛〉鍒楄〃鏌ヨ * diff --git a/lxzn-module-tms/src/main/java/org/jeecg/modules/tms/controller/InboundOrderController.java b/lxzn-module-tms/src/main/java/org/jeecg/modules/tms/controller/InboundOrderController.java index 9b4a4bb..71e4a00 100644 --- a/lxzn-module-tms/src/main/java/org/jeecg/modules/tms/controller/InboundOrderController.java +++ b/lxzn-module-tms/src/main/java/org/jeecg/modules/tms/controller/InboundOrderController.java @@ -1,5 +1,6 @@ package org.jeecg.modules.tms.controller; +import java.math.BigDecimal; import java.util.Arrays; import java.util.List; import java.util.Map; @@ -12,8 +13,10 @@ import com.alibaba.fastjson.JSONArray; import com.alibaba.fastjson.JSONObject; +import org.apache.shiro.SecurityUtils; import org.jeecg.common.api.vo.Result; import org.jeecg.common.system.query.QueryGenerator; +import org.jeecg.common.system.vo.LoginUser; import org.jeecg.common.util.oConvertUtils; import org.jeecg.modules.system.service.ISysBusinessCodeRuleService; import org.jeecg.modules.tms.entity.InboundDetail; @@ -101,6 +104,8 @@ InboundOrder inboundOrder = jSONObject.toJavaObject(InboundOrder.class); inboundOrder.setOrderStatus("1"); inboundOrder.setInStatus("1"); + LoginUser user = (LoginUser) SecurityUtils.getSubject().getPrincipal(); + inboundOrder.setHandler(user.getUsername()); inboundOrder.setInboundNum(businessCodeRuleService.generateBusinessCodeSeq("InBoundOrder")); inboundOrderService.save(inboundOrder); // 淇濆瓨鍏ュ簱鐢宠鍗曟槑缁嗘暟鎹� @@ -108,7 +113,11 @@ List<InboundDetail> list = jsonArray.toJavaList(InboundDetail.class); for (int i = 0; i < list.size(); i++) { InboundDetail temp = list.get(i); + temp.setId(null); temp.setInStorehouseId(inboundOrder.getId()); + temp.setInActualCount(BigDecimal.ZERO); + temp.setInStatus("1"); + temp.setToolId(temp.getOnlyCode()); temp.setToolCode(temp.getToolCodeId()); } inboundDetailService.saveBatch(list); @@ -135,7 +144,11 @@ List<InboundDetail> list = jsonArray.toJavaList(InboundDetail.class); for (int i = 0; i < list.size(); i++) { InboundDetail temp = list.get(i); + temp.setId(null); temp.setInStorehouseId(inboundOrder.getId()); + temp.setInStatus("1"); + temp.setInActualCount(BigDecimal.ZERO); + temp.setToolId(temp.getOnlyCode()); temp.setToolCode(temp.getToolCodeId()); } inboundDetailService.saveOrUpdateBatch(list); @@ -236,11 +249,20 @@ } - @AutoLog(value = "鏂板鍏ュ簱") - @ApiOperation(value = "鏂板鍏ュ簱鎿嶄綔", notes = "鏂板鍏ュ簱鎿嶄綔") + @AutoLog(value = "宸ュ叿鍏ュ簱-鏂板鍏ュ簱") + @ApiOperation(value = "宸ュ叿鍏ュ簱-鏂板鍏ュ簱", notes = "宸ュ叿鍏ュ簱-鏂板鍏ュ簱") @PostMapping("/addInStorage") public Result<?> addInStorage(@RequestBody JSONObject jSONObject) { inboundOrderService.addInStorage(jSONObject); return Result.OK("鎿嶄綔鎴愬姛"); } + + @AutoLog(value = "宸ュ叿鍏ュ簱-鐢宠鍗曞叆搴�") + @ApiOperation(value = "宸ュ叿鍏ュ簱-鐢宠鍗曞叆搴�", notes = "宸ュ叿鍏ュ簱-鐢宠鍗曞叆搴�") + @PostMapping("/addApplyInStorage") + public Result<?> addApplyInStorage(@RequestBody JSONObject jSONObject) { + inboundOrderService.addApplyInStorage(jSONObject); + return Result.OK("鎿嶄綔鎴愬姛"); + } + } diff --git a/lxzn-module-tms/src/main/java/org/jeecg/modules/tms/controller/ToolLedgerDetailController.java b/lxzn-module-tms/src/main/java/org/jeecg/modules/tms/controller/ToolLedgerDetailController.java index 8e3f04f..d7b84a1 100644 --- a/lxzn-module-tms/src/main/java/org/jeecg/modules/tms/controller/ToolLedgerDetailController.java +++ b/lxzn-module-tms/src/main/java/org/jeecg/modules/tms/controller/ToolLedgerDetailController.java @@ -175,4 +175,42 @@ return super.importExcel(request, response, ToolLedgerDetail.class); } + /** + * 宸ュ叿鍏ュ簱-閫夋嫨鍊熷嚭宸ュ叿 + * + * @param toolLedgerDetail + * @param pageNo + * @param pageSize + * @param query + * @return + */ + @ApiOperation(value="宸ュ叿鍏ュ簱-閫夋嫨鍊熷嚭宸ュ叿", notes="宸ュ叿鍏ュ簱-閫夋嫨鍊熷嚭宸ュ叿") + @GetMapping(value = "/queryLendTool") + public Result<?> queryLendTool(ToolLedgerDetail toolLedgerDetail, + @RequestParam(name="pageNo", defaultValue="1") Integer pageNo, + @RequestParam(name="pageSize", defaultValue="10") Integer pageSize, + @RequestParam Map<String, String> query) { + IPage<Map<String, Object>> pageList = toolLedgerDetailService.queryLendTool(pageNo, pageSize, query); + return Result.OK(pageList); + } + + /** + * 宸ュ叿鍏ュ簱-閫夋嫨鍒冪(宸ュ叿 + * + * @param toolLedgerDetail + * @param pageNo + * @param pageSize + * @param query + * @return + */ + @ApiOperation(value="宸ュ叿鍏ュ簱-閫夋嫨鍒冪(宸ュ叿", notes="宸ュ叿鍏ュ簱-閫夋嫨鍒冪(宸ュ叿") + @GetMapping(value = "/querySharpenTool") + public Result<?> querySharpenTool(ToolLedgerDetail toolLedgerDetail, + @RequestParam(name="pageNo", defaultValue="1") Integer pageNo, + @RequestParam(name="pageSize", defaultValue="10") Integer pageSize, + @RequestParam Map<String, String> query) { + IPage<Map<String, Object>> pageList = toolLedgerDetailService.querySharpenTool(pageNo, pageSize, query); + return Result.OK(pageList); + } + } diff --git a/lxzn-module-tms/src/main/java/org/jeecg/modules/tms/entity/InboundDetail.java b/lxzn-module-tms/src/main/java/org/jeecg/modules/tms/entity/InboundDetail.java index 9569464..9bd9f7e 100644 --- a/lxzn-module-tms/src/main/java/org/jeecg/modules/tms/entity/InboundDetail.java +++ b/lxzn-module-tms/src/main/java/org/jeecg/modules/tms/entity/InboundDetail.java @@ -58,6 +58,10 @@ @Excel(name = "瀹為檯鍏ュ簱鏁伴噺", width = 15) @ApiModelProperty(value = "瀹為檯鍏ュ簱鏁伴噺") private BigDecimal inActualCount; + /**鍏ュ簱鐘舵��*/ + @Excel(name = "鍏ュ簱鐘舵��", width = 15) + @ApiModelProperty(value = "鍏ュ簱鐘舵��") + private String inStatus; /**澶囨敞*/ @Excel(name = "澶囨敞", width = 15) @ApiModelProperty(value = "澶囨敞") @@ -94,4 +98,7 @@ @TableField(exist = false) private String toolCodeId; + + @TableField(exist = false) + private String onlyCode; } diff --git a/lxzn-module-tms/src/main/java/org/jeecg/modules/tms/entity/ToolLedgerDetail.java b/lxzn-module-tms/src/main/java/org/jeecg/modules/tms/entity/ToolLedgerDetail.java index 836371a..1406c3c 100644 --- a/lxzn-module-tms/src/main/java/org/jeecg/modules/tms/entity/ToolLedgerDetail.java +++ b/lxzn-module-tms/src/main/java/org/jeecg/modules/tms/entity/ToolLedgerDetail.java @@ -90,4 +90,8 @@ @DateTimeFormat(pattern="yyyy-MM-dd") @ApiModelProperty(value = "鏇存柊鏃堕棿") private Date updateTime; + + @TableField(exist = false) + @ApiModelProperty(value = "鍨嬪彿/鍥惧彿") + private String toolModel; } diff --git a/lxzn-module-tms/src/main/java/org/jeecg/modules/tms/entity/vo/InboundDetailVo.java b/lxzn-module-tms/src/main/java/org/jeecg/modules/tms/entity/vo/InboundDetailVo.java index 50c1208..39d983f 100644 --- a/lxzn-module-tms/src/main/java/org/jeecg/modules/tms/entity/vo/InboundDetailVo.java +++ b/lxzn-module-tms/src/main/java/org/jeecg/modules/tms/entity/vo/InboundDetailVo.java @@ -40,4 +40,10 @@ @ApiModelProperty(value = "鍏ュ簱鏁伴噺") private BigDecimal inStorageQuantity; + @ApiModelProperty(value = "鍞竴缂栫爜") + private String onlyCode; + + @ApiModelProperty(value = "宸ュ叿鍒嗙被id") + private String classifyId; + } diff --git a/lxzn-module-tms/src/main/java/org/jeecg/modules/tms/entity/vo/ParaCommonToolVo.java b/lxzn-module-tms/src/main/java/org/jeecg/modules/tms/entity/vo/ParaCommonToolVo.java index 0365f95..1cfa455 100644 --- a/lxzn-module-tms/src/main/java/org/jeecg/modules/tms/entity/vo/ParaCommonToolVo.java +++ b/lxzn-module-tms/src/main/java/org/jeecg/modules/tms/entity/vo/ParaCommonToolVo.java @@ -32,6 +32,9 @@ @ApiModelProperty(value = "宸ュ叿缂栧彿") private String toolId; + @ApiModelProperty(value = "宸ュ叿id") + private String toolCodeId; + @ApiModelProperty(value = "搴忓彿锛堟垨浼佷笟鍐呯爜锛�") private String signCode; diff --git a/lxzn-module-tms/src/main/java/org/jeecg/modules/tms/mapper/ToolLedgerDetailMapper.java b/lxzn-module-tms/src/main/java/org/jeecg/modules/tms/mapper/ToolLedgerDetailMapper.java index bed2922..190910a 100644 --- a/lxzn-module-tms/src/main/java/org/jeecg/modules/tms/mapper/ToolLedgerDetailMapper.java +++ b/lxzn-module-tms/src/main/java/org/jeecg/modules/tms/mapper/ToolLedgerDetailMapper.java @@ -1,7 +1,9 @@ package org.jeecg.modules.tms.mapper; import java.util.List; +import java.util.Map; +import com.baomidou.mybatisplus.core.conditions.Wrapper; import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; import com.baomidou.mybatisplus.core.metadata.IPage; import com.baomidou.mybatisplus.core.toolkit.Constants; @@ -20,4 +22,8 @@ IPage<ToolLedgerDetail> queryPageList(Page<ToolLedgerDetail> page, @Param(Constants.WRAPPER) QueryWrapper<Object> queryWrapper); + + IPage<Map<String, Object>> queryLendTool(IPage<Map> pageData, @Param(Constants.WRAPPER) Wrapper<Map> wrapper); + + IPage<Map<String, Object>> querySharpenTool(IPage<Map> pageData, @Param(Constants.WRAPPER) Wrapper<Map> wrapper); } diff --git a/lxzn-module-tms/src/main/java/org/jeecg/modules/tms/mapper/xml/BaseToolsMapper.xml b/lxzn-module-tms/src/main/java/org/jeecg/modules/tms/mapper/xml/BaseToolsMapper.xml index 549472b..b629b67 100644 --- a/lxzn-module-tms/src/main/java/org/jeecg/modules/tms/mapper/xml/BaseToolsMapper.xml +++ b/lxzn-module-tms/src/main/java/org/jeecg/modules/tms/mapper/xml/BaseToolsMapper.xml @@ -71,6 +71,7 @@ <select id="paraCommonToolList" resultType="org.jeecg.modules.tms.entity.vo.ParaCommonToolVo"> select t.id, + t.id toolCodeId, t.classify_id classifyId, t.tool_code toolCode, t.sign_code signCode, diff --git a/lxzn-module-tms/src/main/java/org/jeecg/modules/tms/mapper/xml/InStoreDetailMapper.xml b/lxzn-module-tms/src/main/java/org/jeecg/modules/tms/mapper/xml/InStoreDetailMapper.xml index 79cf799..5dd036e 100644 --- a/lxzn-module-tms/src/main/java/org/jeecg/modules/tms/mapper/xml/InStoreDetailMapper.xml +++ b/lxzn-module-tms/src/main/java/org/jeecg/modules/tms/mapper/xml/InStoreDetailMapper.xml @@ -2,7 +2,7 @@ <!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd"> <mapper namespace="org.jeecg.modules.tms.mapper.InStoreDetailMapper"> - <select id="queryPageList" resultType="map" parameterType="String"> + <select id="findPageList" resultType="map" parameterType="String"> SELECT t.id, t.tool_id onlyCode, @@ -26,8 +26,9 @@ t4.item_text operateType, t5.realname handler, t6.realname reviewer, - t7.item_value inStatus, - t8.item_value orderStatus + t7.item_text inStatus, + t8.item_text orderStatus, + t9.item_text inStorehouseTypeName FROM tms_in_store_detail t LEFT JOIN tms_base_tools t1 on t.tool_code = t1.id LEFT JOIN tms_tools_classify t2 on t2.id = t1.classify_id @@ -37,6 +38,7 @@ LEFT JOIN sys_user t6 on t6.username = t3.reviewer LEFT JOIN (select * from v_sys_dict where dict_code='in_status') t7 on t7.item_value = t3.in_status LEFT JOIN (select * from v_sys_dict where dict_code='in_bill_status') t8 on t8.item_value = t3.order_status + left join (select * from v_sys_dict where dict_code='in_storehouse_type') t9 on t9.item_value = t.in_storehouse_type ${ew.customSqlSegment} </select> </mapper> \ No newline at end of file diff --git a/lxzn-module-tms/src/main/java/org/jeecg/modules/tms/mapper/xml/InboundDetailMapper.xml b/lxzn-module-tms/src/main/java/org/jeecg/modules/tms/mapper/xml/InboundDetailMapper.xml index dbf39d6..5b638ab 100644 --- a/lxzn-module-tms/src/main/java/org/jeecg/modules/tms/mapper/xml/InboundDetailMapper.xml +++ b/lxzn-module-tms/src/main/java/org/jeecg/modules/tms/mapper/xml/InboundDetailMapper.xml @@ -12,9 +12,11 @@ t1.in_storage_quantity inStorageQuantity, t1.in_actual_count inActualCount, t3.tool_code toolCode, + t1.tool_id onlyCode, t3.chinese_name chineseName, t3.tool_model toolModel, t5.item_text applicationType, + t6.id classifyId, t6.classify_id classifyNum, t8.item_text inStorehouseType from tms_inbound_detail t1 diff --git a/lxzn-module-tms/src/main/java/org/jeecg/modules/tms/mapper/xml/ToolLedgerDetailMapper.xml b/lxzn-module-tms/src/main/java/org/jeecg/modules/tms/mapper/xml/ToolLedgerDetailMapper.xml index c025550..cd683ee 100644 --- a/lxzn-module-tms/src/main/java/org/jeecg/modules/tms/mapper/xml/ToolLedgerDetailMapper.xml +++ b/lxzn-module-tms/src/main/java/org/jeecg/modules/tms/mapper/xml/ToolLedgerDetailMapper.xml @@ -19,4 +19,156 @@ LEFT JOIN tms_warehouse q on t.warehouse_id = q.id ${ew.customSqlSegment} </select> + + <!--<select id="queryToolByStatus" resultType="map" parameterType="String"> + SELECT + t.id, + t.tool_code toolCodeId, + p.tool_code toolCode, + t.tool_id onlyCode, + p.chinese_name chineseName, + p.accuracy_class accuracyClass, + p.tool_model toolModel, + t.quantity, + t.warehouse_id warehouseId, + ISNULL(q.warehouse_id, '') + '/' + ISNULL(q.warehouse_name, '') warehouseName, + t.position_code positionCode, + t2.item_text applicationTypeName + FROM tms_tool_ledger_detail t + LEFT JOIN tms_base_tools p on t.tool_code = p.id + LEFT JOIN tms_warehouse q on t.warehouse_id = q.id + left join tms_tools_config_property t1 on t1.tool_code = p.id + left join (select * from v_sys_dict where dict_code = 'application_type') t2 on t2.item_value = t1.application_type + ${ew.customSqlSegment} + </select>--> + + <select id="queryLendTool" resultType="map" parameterType="String"> + SELECT + temp.id, + temp.toolCodeId, + temp.toolCode, + temp.onlyCode, + temp.chineseName, + temp.accuracyClass, + temp.toolModel, + temp.quantity, + temp.warehouseId, + temp.warehouseName, + temp.positionCode, + temp.applicationTypeName + FROM + ( + SELECT + t.id, + t.tool_code toolCodeId, + p.tool_code toolCode, + t.tool_id onlyCode, + p.chinese_name chineseName, + p.accuracy_class accuracyClass, + p.tool_model toolModel, + 1 quantity, + t.warehouse_id warehouseId, + ISNULL( q.warehouse_id, '' ) + '/' + ISNULL( q.warehouse_name, '' ) warehouseName, + t.position_code positionCode, + t2.item_text applicationTypeName + FROM + tms_tool_ledger_detail t + LEFT JOIN tms_base_tools p ON t.tool_code = p.id + LEFT JOIN tms_warehouse q ON t.warehouse_id = q.id + LEFT JOIN tms_tools_config_property t1 ON t1.tool_code = p.id + LEFT JOIN ( SELECT * FROM v_sys_dict WHERE dict_code = 'application_type' ) t2 ON t2.item_value = t1.application_type + ${ew.customSqlSegment} + UNION ALL + ( + SELECT + t.id, + t.tool_code toolCodeId, + p.tool_code toolCode, + t.tool_id onlyCode, + p.chinese_name chineseName, + p.accuracy_class accuracyClass, + p.tool_model toolModel, + t3.lend_count quantity, + t.warehouse_id warehouseId, + ISNULL( q.warehouse_id, '' ) + '/' + ISNULL( q.warehouse_name, '' ) warehouseName, + t.position_code positionCode, + t2.item_text applicationTypeName + FROM + tms_tool_ledger_detail t + LEFT JOIN tms_tool_ledger t3 ON t3.tool_id = t.tool_code + LEFT JOIN tms_base_tools p ON t.tool_code = p.id + LEFT JOIN tms_warehouse q ON t.warehouse_id = q.id + LEFT JOIN tms_tools_config_property t1 ON t1.tool_code = p.id + LEFT JOIN ( SELECT * FROM v_sys_dict WHERE dict_code = 'application_type' ) t2 ON t2.item_value = t1.application_type + WHERE + p.accuracy_class != 1 + AND t3.lend_count != 0 + ) + ) temp + </select> + + <select id="querySharpenTool" resultType="map" parameterType="String"> + SELECT + temp.id, + temp.toolCodeId, + temp.toolCode, + temp.onlyCode, + temp.chineseName, + temp.accuracyClass, + temp.toolModel, + temp.quantity, + temp.warehouseId, + temp.warehouseName, + temp.positionCode, + temp.applicationTypeName + FROM + ( + SELECT + t.id, + t.tool_code toolCodeId, + p.tool_code toolCode, + t.tool_id onlyCode, + p.chinese_name chineseName, + p.accuracy_class accuracyClass, + p.tool_model toolModel, + 1 quantity, + t.warehouse_id warehouseId, + ISNULL( q.warehouse_id, '' ) + '/' + ISNULL( q.warehouse_name, '' ) warehouseName, + t.position_code positionCode, + t2.item_text applicationTypeName + FROM + tms_tool_ledger_detail t + LEFT JOIN tms_base_tools p ON t.tool_code = p.id + LEFT JOIN tms_warehouse q ON t.warehouse_id = q.id + LEFT JOIN tms_tools_config_property t1 ON t1.tool_code = p.id + LEFT JOIN ( SELECT * FROM v_sys_dict WHERE dict_code = 'application_type' ) t2 ON t2.item_value = t1.application_type + ${ew.customSqlSegment} + UNION ALL + ( + SELECT + t.id, + t.tool_code toolCodeId, + p.tool_code toolCode, + t.tool_id onlyCode, + p.chinese_name chineseName, + p.accuracy_class accuracyClass, + p.tool_model toolModel, + t3.sharpening_count quantity, + t.warehouse_id warehouseId, + ISNULL( q.warehouse_id, '' ) + '/' + ISNULL( q.warehouse_name, '' ) warehouseName, + t.position_code positionCode, + t2.item_text applicationTypeName + FROM + tms_tool_ledger_detail t + LEFT JOIN tms_tool_ledger t3 ON t3.tool_id = t.tool_code + LEFT JOIN tms_base_tools p ON t.tool_code = p.id + LEFT JOIN tms_warehouse q ON t.warehouse_id = q.id + LEFT JOIN tms_tools_config_property t1 ON t1.tool_code = p.id + LEFT JOIN ( SELECT * FROM v_sys_dict WHERE dict_code = 'application_type' ) t2 ON t2.item_value = t1.application_type + WHERE + p.accuracy_class != 1 + AND t3.sharpening_count != 0 + ) + ) temp + </select> </mapper> \ No newline at end of file diff --git a/lxzn-module-tms/src/main/java/org/jeecg/modules/tms/service/IInboundOrderService.java b/lxzn-module-tms/src/main/java/org/jeecg/modules/tms/service/IInboundOrderService.java index f4f8474..e892396 100644 --- a/lxzn-module-tms/src/main/java/org/jeecg/modules/tms/service/IInboundOrderService.java +++ b/lxzn-module-tms/src/main/java/org/jeecg/modules/tms/service/IInboundOrderService.java @@ -19,4 +19,6 @@ void approvalProcess(InboundOrderFlowDto inboundOrderFlowDto); void addInStorage(JSONObject jSONObject); + + void addApplyInStorage(JSONObject jSONObject); } diff --git a/lxzn-module-tms/src/main/java/org/jeecg/modules/tms/service/IToolLedgerDetailService.java b/lxzn-module-tms/src/main/java/org/jeecg/modules/tms/service/IToolLedgerDetailService.java index c54329d..fb4c435 100644 --- a/lxzn-module-tms/src/main/java/org/jeecg/modules/tms/service/IToolLedgerDetailService.java +++ b/lxzn-module-tms/src/main/java/org/jeecg/modules/tms/service/IToolLedgerDetailService.java @@ -16,4 +16,8 @@ public interface IToolLedgerDetailService extends IService<ToolLedgerDetail> { IPage<ToolLedgerDetail> queryPageList(Page<ToolLedgerDetail> page, Map<String, String[]> parameterMap); + + IPage<Map<String, Object>> queryLendTool(Integer pageNo, Integer pageSize, Map<String, String> query); + + IPage<Map<String, Object>> querySharpenTool(Integer pageNo, Integer pageSize, Map<String, String> query); } diff --git a/lxzn-module-tms/src/main/java/org/jeecg/modules/tms/service/impl/InStoreDetailServiceImpl.java b/lxzn-module-tms/src/main/java/org/jeecg/modules/tms/service/impl/InStoreDetailServiceImpl.java index 49fe595..0671d0a 100644 --- a/lxzn-module-tms/src/main/java/org/jeecg/modules/tms/service/impl/InStoreDetailServiceImpl.java +++ b/lxzn-module-tms/src/main/java/org/jeecg/modules/tms/service/impl/InStoreDetailServiceImpl.java @@ -40,9 +40,17 @@ if (StringUtils.isNotBlank(classifyId)) { queryWrapper.eq("t2.id", classifyId); } + String toolCode = query.get("toolCode"); + if (StringUtils.isNotBlank(toolCode)) { + queryWrapper.like("t1.tool_code", toolCode); + } + String toolModel = query.get("toolModel"); + if (StringUtils.isNotBlank(toolModel)) { + queryWrapper.like("t1.tool_mode", toolModel); + } // 鎺掑簭鍐欐硶 List<OrderItem> orderItems = new ArrayList<>(); - orderItems.add(OrderItem.desc("t1.create_time")); + orderItems.add(OrderItem.desc("t.create_time")); ((Page<Map>) pageData).setOrders(orderItems); } return super.getBaseMapper().findPageList(pageData,queryWrapper); diff --git a/lxzn-module-tms/src/main/java/org/jeecg/modules/tms/service/impl/InboundOrderServiceImpl.java b/lxzn-module-tms/src/main/java/org/jeecg/modules/tms/service/impl/InboundOrderServiceImpl.java index 061ee1c..0671b37 100644 --- a/lxzn-module-tms/src/main/java/org/jeecg/modules/tms/service/impl/InboundOrderServiceImpl.java +++ b/lxzn-module-tms/src/main/java/org/jeecg/modules/tms/service/impl/InboundOrderServiceImpl.java @@ -5,6 +5,7 @@ import com.alibaba.fastjson.JSONArray; import com.alibaba.fastjson.JSONObject; import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; +import com.baomidou.mybatisplus.core.toolkit.StringUtils; import org.apache.shiro.SecurityUtils; import org.apache.shiro.subject.Subject; import org.flowable.engine.TaskService; @@ -64,9 +65,43 @@ @Autowired private IToolLedgerDetailService toolLedgerDetailService; + + @Autowired + private IInboundDetailService inboundDetailService; @Override public boolean submit(String id) { InboundOrder inboundOrder = this.getById(id); + //鍊熺敤鍜屽垉纾ㄥ叆搴撴椂鏍¢獙搴撳瓨 + List<InboundDetail> inboundDetailList = inboundDetailService.lambdaQuery().eq(InboundDetail::getInStorehouseId,id).list(); + if("2".equals(inboundOrder.getInStorehouseType())){ + for(InboundDetail inboundDetail : inboundDetailList){ + if(StringUtils.isNotBlank(inboundDetail.getToolId())){ + ToolLedgerDetail toolLedgerDetail = toolLedgerDetailService.lambdaQuery().eq(ToolLedgerDetail::getToolId,inboundDetail.getToolId()).one(); + if(toolLedgerDetail.getQuantity().compareTo(inboundDetail.getInStorageQuantity()) == 0){ + throw new JeecgBootException("缂栫爜涓恒��" + toolLedgerDetail.getToolId() + "銆戠殑宸ュ叿鏈�熷嚭锛屼笉闇�瑕佸綊杩樺叆搴擄紒"); + } + }else { + ToolLedger toolLedger = toolLedgerService.lambdaQuery().eq(ToolLedger::getToolId,inboundDetail.getToolCode()).one(); + if(toolLedger.getLendCount().compareTo(inboundDetail.getInStorageQuantity()) < 0){ + throw new JeecgBootException("缂栫爜涓恒��" + toolLedger.getToolId() + "銆戠殑宸ュ叿鏈�熷嚭锛屼笉闇�瑕佸綊杩樺叆搴擄紒"); + } + } + } + }else if("5".equals(inboundOrder.getInStorehouseType())){ + for(InboundDetail inboundDetail : inboundDetailList){ + if(StringUtils.isNotBlank(inboundDetail.getToolId())){ + ToolLedgerDetail toolLedgerDetail = toolLedgerDetailService.lambdaQuery().eq(ToolLedgerDetail::getToolId,inboundDetail.getToolId()).one(); + if(toolLedgerDetail.getQuantity().compareTo(inboundDetail.getInStorageQuantity()) == 0){ + throw new JeecgBootException("缂栫爜涓恒��" + toolLedgerDetail.getToolId() + "銆戠殑宸ュ叿鏈垉纾紝涓嶉渶瑕佸垉纾ㄥ叆搴擄紒"); + } + }else { + ToolLedger toolLedger = toolLedgerService.lambdaQuery().eq(ToolLedger::getToolId,inboundDetail.getToolCode()).one(); + if(toolLedger.getSharpeningCount().compareTo(inboundDetail.getInStorageQuantity()) < 0){ + throw new JeecgBootException("缂栫爜涓恒��" + toolLedger.getToolId() + "銆戠殑宸ュ叿鏈垉纾紝涓嶉渶瑕佸垉纾ㄥ叆搴擄紒"); + } + } + } + } //鍙戣捣瀹℃壒娴佺▼ this.triggerProcess(inboundOrder); //鏇存柊鍏ュ簱鍗曞鎵圭姸鎬佷负宸叉彁浜� @@ -91,7 +126,7 @@ variables.put("comment", "鏂板鍏ュ簱鐢宠鍗曢粯璁ゅ惎鍔ㄦ祦绋�"); variables.put("proofreading", true); List<String> usernames = new ArrayList<>(); - usernames.add(inboundOrder.getHandler()); + usernames.add(inboundOrder.getReviewer()); variables.put("NextAssignee", usernames); Result result = flowDefinitionService.startProcessInstanceByKey("tool_in_storage", variables); return result.isSuccess(); @@ -165,9 +200,10 @@ //鏍规嵁浠诲姟瀹屾垚缁撴灉鏇存柊鐢宠鍗曠姸鎬� if (result.isSuccess()) { - inboundOrder.setOrderStatus(inboundOrderFlowDto.getStatus()); if ("3".equals(inboundOrderFlowDto.getStatus())) { - inboundOrder.setInStatus("1"); + inboundOrder.setOrderStatus("3"); + }else if("4".equals(inboundOrderFlowDto.getStatus())){ + inboundOrder.setOrderStatus("1"); } inboundOrder.setReviewer(user.getUsername()); inboundOrder.setApprovalDate(new Date()); @@ -179,6 +215,7 @@ @Override public void addInStorage(JSONObject jSONObject) { String inStorehouseType = jSONObject.getString("inStorehouseType"); + String classifyId = jSONObject.getString("classifyId"); Date inboundTime = jSONObject.getDate("inboundTime"); //鑾峰彇鍏ュ簱鏄庣粏 JSONArray jsonArray = jSONObject.getJSONArray("detailData"); @@ -201,6 +238,7 @@ newToolLedger.setLossCount(BigDecimal.ZERO); newToolLedger.setRepairCount(BigDecimal.ZERO); newToolLedger.setSharpeningCount(BigDecimal.ZERO); + newToolLedger.setClassifyId(classifyId); toolLedgerService.save(newToolLedger); }else { toolLedger.setAvailableCount(toolLedger.getAvailableCount().add(inboundDetailVo.getInStorageQuantity())); @@ -264,13 +302,321 @@ } } } + //褰掕繕鍏ュ簱 }else if("2".equals(inStorehouseType)){ + //寰幆鏂板鏄庣粏 + for(InboundDetailVo inboundDetailVo : inStoreDetailList) { + //鏌ヨ鏄惁绠″埌鎶婏紝绠″埌鎶婄殑鏌ヨ褰撳墠缂栫爜 + BaseTools baseTools = baseToolsService.getById(inboundDetailVo.getToolCodeId()); + //澧炲姞鍙敤搴撳瓨锛屽噺灏戝�熷嚭搴撳瓨 + ToolLedger toolLedger = toolLedgerService.lambdaQuery().eq(ToolLedger::getToolId, inboundDetailVo.getToolCodeId()).one(); + toolLedger.setAvailableCount(toolLedger.getAvailableCount().add(inboundDetailVo.getInStorageQuantity())); + toolLedger.setLendCount(toolLedger.getLendCount().subtract(inboundDetailVo.getInStorageQuantity())); + toolLedgerService.updateById(toolLedger); + //鏌ヨ鏄惁绠″埌鎶婏紝绠″埌鎶婄殑鐢╰oolId锛屼笉绠″埌鎶婄殑鐢╰oolCodeId + //绠″埌鎶� + if("1".equals(baseTools.getAccuracyClass())){ + //澧炲姞搴撳瓨鏄庣粏鍙敤搴撳瓨锛屼慨鏀圭姸鎬� + ToolLedgerDetail toolLedgerDetail = toolLedgerDetailService.lambdaQuery() + .eq(ToolLedgerDetail::getToolCode,inboundDetailVo.getToolCodeId()) + .eq(ToolLedgerDetail::getToolId,inboundDetailVo.getOnlyCode()).one(); + toolLedgerDetail.setQuantity(BigDecimal.ONE); + toolLedgerDetail.setStatus("1"); + toolLedgerDetailService.updateById(toolLedgerDetail); + //淇濆瓨鍏ュ簱娴佹按 + InStoreDetail inStoreDetail = new InStoreDetail(); + inStoreDetail.setInboundTime(inboundTime); + inStoreDetail.setOperateType("2"); + inStoreDetail.setInNumber(BigDecimal.ONE); + inStoreDetail.setInStorehouseType("2"); + inStoreDetail.setToolCode(inboundDetailVo.getToolCodeId()); + inStoreDetail.setToolId(inboundDetailVo.getOnlyCode()); + inStoreDetailService.save(inStoreDetail); + //涓嶇鍒版妸 + }else { + //澧炲姞搴撳瓨鏄庣粏鍙敤搴撳瓨锛屼慨鏀圭姸鎬� + ToolLedgerDetail toolLedgerDetail = toolLedgerDetailService.lambdaQuery().eq(ToolLedgerDetail::getToolCode,inboundDetailVo.getToolCodeId()).one(); + toolLedgerDetail.setQuantity(toolLedgerDetail.getQuantity().add(inboundDetailVo.getInStorageQuantity())); + toolLedgerDetail.setStatus("1"); + toolLedgerDetailService.updateById(toolLedgerDetail); + //淇濆瓨鍏ュ簱娴佹按 + InStoreDetail inStoreDetail = new InStoreDetail(); + inStoreDetail.setInboundTime(inboundTime); + inStoreDetail.setOperateType("2"); + inStoreDetail.setInNumber(inboundDetailVo.getInStorageQuantity()); + inStoreDetail.setInStorehouseType("2"); + inStoreDetail.setToolCode(inboundDetailVo.getToolCodeId()); + inStoreDetailService.save(inStoreDetail); + } + } }else if("5".equals(inStorehouseType)){ + //寰幆鏂板鏄庣粏 + for(InboundDetailVo inboundDetailVo : inStoreDetailList) { + //鏌ヨ鏄惁绠″埌鎶婏紝绠″埌鎶婄殑鏌ヨ褰撳墠缂栫爜 + BaseTools baseTools = baseToolsService.getById(inboundDetailVo.getToolCodeId()); + //澧炲姞鎬诲簱瀛樺強鍙敤搴撳瓨锛屽噺灏戝垉纾ㄥ簱瀛� + ToolLedger toolLedger = toolLedgerService.lambdaQuery().eq(ToolLedger::getToolId, inboundDetailVo.getToolCodeId()).one(); + toolLedger.setAvailableCount(toolLedger.getAvailableCount().add(inboundDetailVo.getInStorageQuantity())); + toolLedger.setSharpeningCount(toolLedger.getSharpeningCount().subtract(inboundDetailVo.getInStorageQuantity())); + toolLedgerService.updateById(toolLedger); + //鏌ヨ鏄惁绠″埌鎶婏紝绠″埌鎶婄殑鐢╰oolId锛屼笉绠″埌鎶婄殑鐢╰oolCodeId + //绠″埌鎶� + if("1".equals(baseTools.getAccuracyClass())){ + //澧炲姞搴撳瓨鏄庣粏鍙敤搴撳瓨锛屼慨鏀圭姸鎬� + ToolLedgerDetail toolLedgerDetail = toolLedgerDetailService.lambdaQuery() + .eq(ToolLedgerDetail::getToolCode,inboundDetailVo.getToolCodeId()) + .eq(ToolLedgerDetail::getToolId,inboundDetailVo.getOnlyCode()).one(); + toolLedgerDetail.setQuantity(BigDecimal.ONE); + toolLedgerDetail.setStatus("1"); + toolLedgerDetailService.updateById(toolLedgerDetail); + //淇濆瓨鍏ュ簱娴佹按 + InStoreDetail inStoreDetail = new InStoreDetail(); + inStoreDetail.setInboundTime(inboundTime); + inStoreDetail.setOperateType("2"); + inStoreDetail.setInNumber(BigDecimal.ONE); + inStoreDetail.setInStorehouseType("5"); + inStoreDetail.setToolCode(inboundDetailVo.getToolCodeId()); + inStoreDetail.setToolId(inboundDetailVo.getOnlyCode()); + inStoreDetailService.save(inStoreDetail); + //涓嶇鍒版妸 + }else { + //澧炲姞搴撳瓨鏄庣粏鍙敤搴撳瓨锛屼慨鏀圭姸鎬� + ToolLedgerDetail toolLedgerDetail = toolLedgerDetailService.lambdaQuery().eq(ToolLedgerDetail::getToolCode,inboundDetailVo.getToolCodeId()).one(); + toolLedgerDetail.setQuantity(toolLedgerDetail.getQuantity().add(inboundDetailVo.getInStorageQuantity())); + toolLedgerDetail.setStatus("1"); + toolLedgerDetailService.updateById(toolLedgerDetail); + //淇濆瓨鍏ュ簱娴佹按 + InStoreDetail inStoreDetail = new InStoreDetail(); + inStoreDetail.setInboundTime(inboundTime); + inStoreDetail.setOperateType("2"); + inStoreDetail.setInNumber(inboundDetailVo.getInStorageQuantity()); + inStoreDetail.setInStorehouseType("5"); + inStoreDetail.setToolCode(inboundDetailVo.getToolCodeId()); + inStoreDetailService.save(inStoreDetail); + } + } } } + @Override + public void addApplyInStorage(JSONObject jSONObject) { + String inStorehouseType = jSONObject.getString("inStorehouseType"); + //鍏ュ簱鐢宠鍗昳d + String orderId = jSONObject.getString("orderId"); + //鑾峰彇鍏ュ簱鏄庣粏 + JSONArray jsonArray = jSONObject.getJSONArray("detailData"); + List<InboundDetailVo> inStoreDetailList =jsonArray.toJavaList(InboundDetailVo.class); + //鏂拌揣鍏ュ簱 + if("1".equals(inStorehouseType)){ + //寰幆鏂板鏄庣粏 + for(InboundDetailVo inboundDetailVo : inStoreDetailList){ + //鏌ヨ鏄惁绠″埌鎶婏紝绠″埌鎶婄殑鏌ヨ褰撳墠缂栫爜 + BaseTools baseTools = baseToolsService.getById(inboundDetailVo.getToolCodeId()); + //鎿嶄綔搴撳瓨,鏌ヨ鎬诲簱瀛樻槸鍚﹀瓨鍦ㄨ绫诲垁鍏� + ToolLedger toolLedger = toolLedgerService.lambdaQuery().eq(ToolLedger::getToolId,inboundDetailVo.getToolCodeId()).one(); + if(toolLedger == null){ + ToolLedger newToolLedger = new ToolLedger(); + newToolLedger.setToolId(inboundDetailVo.getToolCodeId()); + newToolLedger.setAvailableCount(inboundDetailVo.getInStorageQuantity()); + newToolLedger.setTotalCount(inboundDetailVo.getInStorageQuantity()); + newToolLedger.setLendCount(BigDecimal.ZERO); + newToolLedger.setDetectionCount(BigDecimal.ZERO); + newToolLedger.setLossCount(BigDecimal.ZERO); + newToolLedger.setRepairCount(BigDecimal.ZERO); + newToolLedger.setSharpeningCount(BigDecimal.ZERO); + newToolLedger.setClassifyId(inboundDetailVo.getClassifyId()); + toolLedgerService.save(newToolLedger); + }else { + toolLedger.setAvailableCount(toolLedger.getAvailableCount().add(inboundDetailVo.getInStorageQuantity())); + toolLedger.setTotalCount(toolLedger.getTotalCount().add(inboundDetailVo.getInStorageQuantity())); + toolLedgerService.updateById(toolLedger); + } + //绠″埌鎶� + if("1".equals(baseTools.getAccuracyClass())){ + //寰幆鍏ュ簱鏁伴噺锛屼负瀹炵墿璧嬬爜 + for(int i=0;i<inboundDetailVo.getInStorageQuantity().intValue();i++){ + BaseTools newBaseTools = baseToolsService.getById(inboundDetailVo.getToolCodeId()); + //鏌ヨ褰撳墠缂栫爜 + String currentCode = newBaseTools.getCurrentCode(); + //灏嗗瓧绗︿覆杞崲涓烘暣鏁� + int num = Integer.parseInt(currentCode); + //鍔�1鎿嶄綔 + num++; + //杞崲鍥炲瓧绗︿覆骞朵繚鐣欏墠瀵奸浂 + String result = String.format("%0" + currentCode.length() + "d", num); + //淇濆瓨鍏ュ簱娴佹按 + InStoreDetail inStoreDetail = new InStoreDetail(); + inStoreDetail.setInStorehouseId(orderId); + inStoreDetail.setInboundTime(new Date()); + inStoreDetail.setOperateType("1"); + inStoreDetail.setInNumber(BigDecimal.ONE); + inStoreDetail.setInStorehouseType("1"); + inStoreDetail.setToolCode(inboundDetailVo.getToolCodeId()); + inStoreDetail.setToolId(inboundDetailVo.getToolCode()+"-"+result); + inStoreDetailService.save(inStoreDetail); + //澧炲姞搴撳瓨鏄庣粏 + ToolLedgerDetail toolLedgerDetail = new ToolLedgerDetail(); + toolLedgerDetail.setToolCode(inboundDetailVo.getToolCodeId()); + toolLedgerDetail.setToolId(inboundDetailVo.getToolCode()+"-"+result); + toolLedgerDetail.setQuantity(BigDecimal.ONE); + toolLedgerDetail.setStatus("1"); + toolLedgerDetailService.save(toolLedgerDetail); + //鏇存柊褰撳墠缂栫爜 + newBaseTools.setCurrentCode(result); + baseToolsService.updateById(newBaseTools); + } + //涓嶇鍒版妸 + }else { + //淇濆瓨鍏ュ簱娴佹按 + InStoreDetail inStoreDetail = new InStoreDetail(); + inStoreDetail.setInboundTime(new Date()); + inStoreDetail.setOperateType("1"); + inStoreDetail.setInNumber(inboundDetailVo.getInStorageQuantity()); + inStoreDetail.setInStorehouseType("1"); + inStoreDetail.setInStorehouseId(orderId); + inStoreDetail.setToolCode(inboundDetailVo.getToolCodeId()); + inStoreDetailService.save(inStoreDetail); + //鏌ヨ搴撳瓨鏄庣粏涓槸鍚﹀瓨鍦ㄨ宸ュ叿 + ToolLedgerDetail toolLedgerDetail = toolLedgerDetailService.lambdaQuery().eq(ToolLedgerDetail::getToolCode,inboundDetailVo.getToolCodeId()).one(); + if(toolLedgerDetail == null){ + ToolLedgerDetail newToolLedgerDetail = new ToolLedgerDetail(); + newToolLedgerDetail.setToolCode(inboundDetailVo.getToolCodeId()); + newToolLedgerDetail.setQuantity(inboundDetailVo.getInStorageQuantity()); + newToolLedgerDetail.setStatus("1"); + toolLedgerDetailService.save(newToolLedgerDetail); + }else { + toolLedgerDetail.setQuantity(toolLedgerDetail.getQuantity().add(inboundDetailVo.getInStorageQuantity())); + toolLedgerDetailService.updateById(toolLedgerDetail); + } + } + //鏇存敼鏄庣粏鍏ュ簱鐘舵�佸強瀹為檯鍏ュ簱鏁伴噺 + InboundDetail inboundDetail = inboundDetailService.getById(inboundDetailVo.getId()); + inboundDetail.setInStatus("3"); + inboundDetail.setInActualCount(inboundDetailVo.getInStorageQuantity()); + inboundDetailService.updateById(inboundDetail); + } + //褰掕繕鍏ュ簱 + }else if("2".equals(inStorehouseType)){ + //寰幆鏂板鏄庣粏 + for(InboundDetailVo inboundDetailVo : inStoreDetailList) { + //鏌ヨ鏄惁绠″埌鎶婏紝绠″埌鎶婄殑鏌ヨ褰撳墠缂栫爜 + BaseTools baseTools = baseToolsService.getById(inboundDetailVo.getToolCodeId()); + //澧炲姞鍙敤搴撳瓨锛屽噺灏戝�熷嚭搴撳瓨 + ToolLedger toolLedger = toolLedgerService.lambdaQuery().eq(ToolLedger::getToolId, inboundDetailVo.getToolCodeId()).one(); + toolLedger.setAvailableCount(toolLedger.getAvailableCount().add(inboundDetailVo.getInStorageQuantity())); + toolLedger.setLendCount(toolLedger.getLendCount().subtract(inboundDetailVo.getInStorageQuantity())); + toolLedgerService.updateById(toolLedger); + //鏌ヨ鏄惁绠″埌鎶婏紝绠″埌鎶婄殑鐢╰oolId锛屼笉绠″埌鎶婄殑鐢╰oolCodeId + //绠″埌鎶� + if("1".equals(baseTools.getAccuracyClass())){ + //澧炲姞搴撳瓨鏄庣粏鍙敤搴撳瓨锛屼慨鏀圭姸鎬� + ToolLedgerDetail toolLedgerDetail = toolLedgerDetailService.lambdaQuery() + .eq(ToolLedgerDetail::getToolCode,inboundDetailVo.getToolCodeId()) + .eq(ToolLedgerDetail::getToolId,inboundDetailVo.getOnlyCode()).one(); + toolLedgerDetail.setQuantity(BigDecimal.ONE); + toolLedgerDetail.setStatus("1"); + toolLedgerDetailService.updateById(toolLedgerDetail); + //淇濆瓨鍏ュ簱娴佹按 + InStoreDetail inStoreDetail = new InStoreDetail(); + inStoreDetail.setInboundTime(new Date()); + inStoreDetail.setOperateType("1"); + inStoreDetail.setInNumber(BigDecimal.ONE); + inStoreDetail.setInStorehouseType("2"); + inStoreDetail.setInStorehouseId(orderId); + inStoreDetail.setToolCode(inboundDetailVo.getToolCodeId()); + inStoreDetail.setToolId(inboundDetailVo.getOnlyCode()); + inStoreDetailService.save(inStoreDetail); + //涓嶇鍒版妸 + }else { + //澧炲姞搴撳瓨鏄庣粏鍙敤搴撳瓨锛屼慨鏀圭姸鎬� + ToolLedgerDetail toolLedgerDetail = toolLedgerDetailService.lambdaQuery().eq(ToolLedgerDetail::getToolCode,inboundDetailVo.getToolCodeId()).one(); + toolLedgerDetail.setQuantity(toolLedgerDetail.getQuantity().add(inboundDetailVo.getInStorageQuantity())); + toolLedgerDetail.setStatus("1"); + toolLedgerDetailService.updateById(toolLedgerDetail); + //淇濆瓨鍏ュ簱娴佹按 + InStoreDetail inStoreDetail = new InStoreDetail(); + inStoreDetail.setInboundTime(new Date()); + inStoreDetail.setOperateType("1"); + inStoreDetail.setInNumber(inboundDetailVo.getInStorageQuantity()); + inStoreDetail.setInStorehouseType("2"); + inStoreDetail.setInStorehouseId(orderId); + inStoreDetail.setToolCode(inboundDetailVo.getToolCodeId()); + inStoreDetailService.save(inStoreDetail); + } + //鏇存敼鏄庣粏鍏ュ簱鐘舵�佸強瀹為檯鍏ュ簱鏁伴噺 + InboundDetail inboundDetail = inboundDetailService.getById(inboundDetailVo.getId()); + inboundDetail.setInStatus("3"); + inboundDetail.setInActualCount(inboundDetailVo.getInStorageQuantity()); + inboundDetailService.updateById(inboundDetail); + } + }else if("5".equals(inStorehouseType)){ + //寰幆鏂板鏄庣粏 + for(InboundDetailVo inboundDetailVo : inStoreDetailList) { + //鏌ヨ鏄惁绠″埌鎶婏紝绠″埌鎶婄殑鏌ヨ褰撳墠缂栫爜 + BaseTools baseTools = baseToolsService.getById(inboundDetailVo.getToolCodeId()); + //澧炲姞鎬诲簱瀛樺強鍙敤搴撳瓨锛屽噺灏戝垉纾ㄥ簱瀛� + ToolLedger toolLedger = toolLedgerService.lambdaQuery().eq(ToolLedger::getToolId, inboundDetailVo.getToolCodeId()).one(); + toolLedger.setAvailableCount(toolLedger.getAvailableCount().add(inboundDetailVo.getInStorageQuantity())); + toolLedger.setSharpeningCount(toolLedger.getSharpeningCount().subtract(inboundDetailVo.getInStorageQuantity())); + toolLedgerService.updateById(toolLedger); + //鏌ヨ鏄惁绠″埌鎶婏紝绠″埌鎶婄殑鐢╰oolId锛屼笉绠″埌鎶婄殑鐢╰oolCodeId + //绠″埌鎶� + if("1".equals(baseTools.getAccuracyClass())){ + //澧炲姞搴撳瓨鏄庣粏鍙敤搴撳瓨锛屼慨鏀圭姸鎬� + ToolLedgerDetail toolLedgerDetail = toolLedgerDetailService.lambdaQuery() + .eq(ToolLedgerDetail::getToolCode,inboundDetailVo.getToolCodeId()) + .eq(ToolLedgerDetail::getToolId,inboundDetailVo.getOnlyCode()).one(); + toolLedgerDetail.setQuantity(BigDecimal.ONE); + toolLedgerDetail.setStatus("1"); + toolLedgerDetailService.updateById(toolLedgerDetail); + //淇濆瓨鍏ュ簱娴佹按 + InStoreDetail inStoreDetail = new InStoreDetail(); + inStoreDetail.setInboundTime(new Date()); + inStoreDetail.setOperateType("1"); + inStoreDetail.setInNumber(BigDecimal.ONE); + inStoreDetail.setInStorehouseType("5"); + inStoreDetail.setInStorehouseId(orderId); + inStoreDetail.setToolCode(inboundDetailVo.getToolCodeId()); + inStoreDetail.setToolId(inboundDetailVo.getOnlyCode()); + inStoreDetailService.save(inStoreDetail); + //涓嶇鍒版妸 + }else { + //澧炲姞搴撳瓨鏄庣粏鍙敤搴撳瓨锛屼慨鏀圭姸鎬� + ToolLedgerDetail toolLedgerDetail = toolLedgerDetailService.lambdaQuery().eq(ToolLedgerDetail::getToolCode,inboundDetailVo.getToolCodeId()).one(); + toolLedgerDetail.setQuantity(toolLedgerDetail.getQuantity().add(inboundDetailVo.getInStorageQuantity())); + toolLedgerDetail.setStatus("1"); + toolLedgerDetailService.updateById(toolLedgerDetail); + //淇濆瓨鍏ュ簱娴佹按 + InStoreDetail inStoreDetail = new InStoreDetail(); + inStoreDetail.setInboundTime(new Date()); + inStoreDetail.setOperateType("1"); + inStoreDetail.setInNumber(inboundDetailVo.getInStorageQuantity()); + inStoreDetail.setInStorehouseType("5"); + inStoreDetail.setInStorehouseId(orderId); + inStoreDetail.setToolCode(inboundDetailVo.getToolCodeId()); + inStoreDetailService.save(inStoreDetail); + } + //鏇存敼鏄庣粏鍏ュ簱鐘舵�佸強瀹為檯鍏ュ簱鏁伴噺 + InboundDetail inboundDetail = inboundDetailService.getById(inboundDetailVo.getId()); + inboundDetail.setInStatus("3"); + inboundDetail.setInActualCount(inboundDetailVo.getInStorageQuantity()); + inboundDetailService.updateById(inboundDetail); + } + } + //鏇存敼鐢宠鍗曞叆搴撶姸鎬� + InboundOrder inboundOrder = this.getById(orderId); + List<InboundDetail> inboundDetailList = inboundDetailService.lambdaQuery().eq(InboundDetail::getInStorehouseId,orderId).list(); + boolean flag = inboundDetailList.stream().allMatch(inboundDetail -> "3".equals(inboundDetail.getInStatus())); + if(flag){ + inboundOrder.setInStatus("3"); + }else { + inboundOrder.setInStatus("2"); + } + this.updateById(inboundOrder); + } + private LoginUser getCurrentUser() { // 鑾峰彇褰撳墠璁よ瘉鐨勭櫥褰曠敤鎴蜂俊鎭� Subject currentUser = SecurityUtils.getSubject(); diff --git a/lxzn-module-tms/src/main/java/org/jeecg/modules/tms/service/impl/ToolLedgerDetailServiceImpl.java b/lxzn-module-tms/src/main/java/org/jeecg/modules/tms/service/impl/ToolLedgerDetailServiceImpl.java index ef5a081..17e916c 100644 --- a/lxzn-module-tms/src/main/java/org/jeecg/modules/tms/service/impl/ToolLedgerDetailServiceImpl.java +++ b/lxzn-module-tms/src/main/java/org/jeecg/modules/tms/service/impl/ToolLedgerDetailServiceImpl.java @@ -4,6 +4,8 @@ import com.baomidou.mybatisplus.core.metadata.IPage; import com.baomidou.mybatisplus.core.toolkit.Wrappers; import com.baomidou.mybatisplus.extension.plugins.pagination.Page; +import org.apache.commons.lang.StringUtils; +import org.jeecg.common.exception.ExceptionCast; import org.jeecg.modules.tms.entity.ToolLedgerDetail; import org.jeecg.modules.tms.mapper.ToolLedgerDetailMapper; import org.jeecg.modules.tms.service.IToolLedgerDetailService; @@ -46,4 +48,54 @@ } return this.baseMapper.queryPageList(page, queryWrapper); } + + @Override + public IPage<Map<String, Object>> queryLendTool(Integer pageNo, Integer pageSize, Map<String, String> query) { + + if (pageNo == null || pageNo < 1 || pageSize == null || pageSize < 1) { + ExceptionCast.cast("鍙傛暟閿欒"); + } + IPage<Map> pageData = new Page<Map>(pageNo, pageSize); + QueryWrapper<Map> queryWrapper = Wrappers.query(); + if (null != query) { + String toolCode = query.get("toolCode"); + if (StringUtils.isNotBlank(toolCode)) { + queryWrapper.like("p.tool_code", toolCode); + } + String status = query.get("status"); + if (StringUtils.isNotBlank(status)) { + queryWrapper.eq("t.status", status); + } + String classifyId = query.get("classifyId"); + if (StringUtils.isNotBlank(classifyId)) { + queryWrapper.like("p.classify_id", classifyId); + } + } + return this.baseMapper.queryLendTool(pageData,queryWrapper); + } + + @Override + public IPage<Map<String, Object>> querySharpenTool(Integer pageNo, Integer pageSize, Map<String, String> query) { + + if (pageNo == null || pageNo < 1 || pageSize == null || pageSize < 1) { + ExceptionCast.cast("鍙傛暟閿欒"); + } + IPage<Map> pageData = new Page<Map>(pageNo, pageSize); + QueryWrapper<Map> queryWrapper = Wrappers.query(); + if (null != query) { + String toolCode = query.get("toolCode"); + if (StringUtils.isNotBlank(toolCode)) { + queryWrapper.like("p.tool_code", toolCode); + } + String status = query.get("status"); + if (StringUtils.isNotBlank(status)) { + queryWrapper.eq("t.status", status); + } + String classifyId = query.get("classifyId"); + if (StringUtils.isNotBlank(classifyId)) { + queryWrapper.like("p.classify_id", classifyId); + } + } + return this.baseMapper.querySharpenTool(pageData,queryWrapper); + } } -- Gitblit v1.9.3