Bläddra i källkod

物料退库接口,批量审批销售单接口,物料流转添加退库数量退库人,修改销售单查询接口,修改待办订单任务、财务待办订单任务传参数据,销售单任务名称数据拼接

xuezizhuo 1 år sedan
förälder
incheckning
cca6e15e7c

+ 11 - 8
zkqy-custom-business/src/main/java/com/zkqy/business/controller/MaterialCirculationController.java

@@ -13,14 +13,7 @@ import com.zkqy.common.enums.BusinessType;
 import com.zkqy.common.utils.poi.ExcelUtil;
 import org.springframework.security.access.prepost.PreAuthorize;
 import org.springframework.beans.factory.annotation.Autowired;
-import org.springframework.web.bind.annotation.GetMapping;
-import org.springframework.web.bind.annotation.PostMapping;
-import org.springframework.web.bind.annotation.PutMapping;
-import org.springframework.web.bind.annotation.DeleteMapping;
-import org.springframework.web.bind.annotation.PathVariable;
-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.*;
 
 /**
  * 物料流转Controller
@@ -122,5 +115,15 @@ public class MaterialCirculationController extends BaseController
         return materialCirculationService.handheldTakeDelivery(materialCirculation);
     }
 
+    /**
+     * 物料退库
+     */
+    @GetMapping("/materialReturn")
+    public AjaxResult materialReturn(@RequestParam("id") Long id, @RequestParam("returnQuantity") String returnQuantity){
+        return materialCirculationService.materialReturn(id, returnQuantity);
+    }
+
+
+
 
 }

+ 7 - 0
zkqy-custom-business/src/main/java/com/zkqy/business/controller/SaleOrderController.java

@@ -117,6 +117,13 @@ public class SaleOrderController extends BaseController
         return AjaxResult.success(saleOrderService.checkContractNo(id,saleNo));
     }
 
+    /**
+     * 批量审批接口
+     */
+    @PostMapping("/batchApproval")
+    public AjaxResult batchApproval(@RequestBody SaleOrderVO vo){
+        return toAjax(saleOrderService.batchApproval(vo));
+    }
 
 
 }

+ 24 - 0
zkqy-custom-business/src/main/java/com/zkqy/business/domain/MaterialCirculation.java

@@ -77,6 +77,12 @@ public class MaterialCirculation extends BaseEntity
     @Excel(name = "任务节点编码")
     private String taskNodeKey;
 
+    /** 退库数量 */
+    private String returnQuantity;
+
+    /** 退库人 */
+    private String depositor;
+
     public void setId(Long id) 
     {
         this.id = id;
@@ -222,6 +228,22 @@ public class MaterialCirculation extends BaseEntity
         return taskNodeKey;
     }
 
+    public String getReturnQuantity() {
+        return returnQuantity;
+    }
+
+    public void setReturnQuantity(String returnQuantity) {
+        this.returnQuantity = returnQuantity;
+    }
+
+    public String getDepositor() {
+        return depositor;
+    }
+
+    public void setDepositor(String depositor) {
+        this.depositor = depositor;
+    }
+
     @Override
     public String toString() {
         return new ToStringBuilder(this,ToStringStyle.MULTI_LINE_STYLE)
@@ -246,6 +268,8 @@ public class MaterialCirculation extends BaseEntity
             .append("delFlag", getDelFlag())
             .append("taskProcessKey", getTaskProcessKey())
             .append("taskNodeKey", getTaskNodeKey())
+            .append("returnQuantity",getReturnQuantity())
+            .append("depositor",getDepositor())
             .toString();
     }
 }

+ 12 - 0
zkqy-custom-business/src/main/java/com/zkqy/business/domain/vo/SaleOrderVO.java

@@ -93,6 +93,9 @@ public class SaleOrderVO {
     /** 销售工艺要求 */
     private SaleCraft saleCraft;
 
+    /** 销售单编号集合 */
+    private List<Long> idList;
+
     public Long getId() {
         return id;
     }
@@ -317,6 +320,14 @@ public class SaleOrderVO {
         this.saleCraft = saleCraft;
     }
 
+    public List<Long> getIdList() {
+        return idList;
+    }
+
+    public void setIdList(List<Long> idList) {
+        this.idList = idList;
+    }
+
     @Override
     public String toString() {
         return "SaleOrderVO{" +
@@ -348,6 +359,7 @@ public class SaleOrderVO {
                 ", deliveryDate='" + deliveryDate + '\'' +
                 ", saleProductsList=" + saleProductsList +
                 ", saleCraft=" + saleCraft +
+                ", idList=" + idList +
                 '}';
     }
 }

+ 9 - 0
zkqy-custom-business/src/main/java/com/zkqy/business/mapper/SaleOrderMapper.java

@@ -2,6 +2,7 @@ package com.zkqy.business.mapper;
 
 import java.util.List;
 import com.zkqy.business.domain.SaleOrder;
+import com.zkqy.business.domain.vo.SaleOrderVO;
 
 /**
  * 销售订单Mapper接口
@@ -66,4 +67,12 @@ public interface SaleOrderMapper
      * @return 销售订单
      */
     SaleOrder selectSaleOrderBySaleNo(String saleNo);
+
+    /**
+     * 批量修改销售订单
+     *
+     * @param vo 销售订单
+     * @return 结果
+     */
+    int batchUpdateSaleOrder(SaleOrderVO vo);
 }

+ 13 - 0
zkqy-custom-business/src/main/java/com/zkqy/business/service/IMaterialCirculationService.java

@@ -70,4 +70,17 @@ public interface IMaterialCirculationService
      * 手持机已取货接口
      */
     AjaxResult handheldTakeDelivery(MaterialCirculation materialCirculation);
+
+    /**
+     * 物料退库
+     * @param id 编号
+     * @param returnQuantity 退库重量
+     */
+    AjaxResult materialReturn(Long id,String returnQuantity);
+
+
+    /**
+     * 物料取货
+     */
+    AjaxResult materialPickup(Long id);
 }

+ 7 - 0
zkqy-custom-business/src/main/java/com/zkqy/business/service/ISaleOrderService.java

@@ -65,5 +65,12 @@ public interface ISaleOrderService
      */
     boolean checkContractNo(Long id,String saleNo);
 
+    /**
+     * 批量审批
+     * @param vo
+     * @return
+     */
+    int batchApproval(SaleOrderVO vo);
+
 
 }

+ 60 - 0
zkqy-custom-business/src/main/java/com/zkqy/business/service/impl/MaterialCirculationServiceImpl.java

@@ -1,6 +1,8 @@
 package com.zkqy.business.service.impl;
 
+import java.util.Date;
 import java.util.List;
+import java.util.UUID;
 
 import com.zkqy.business.domain.MaterialCirculation;
 import com.zkqy.business.domain.MaterialInventory;
@@ -12,6 +14,7 @@ import com.zkqy.business.service.IMaterialCirculationService;
 import com.zkqy.business.service.IMaterielService;
 import com.zkqy.common.core.domain.AjaxResult;
 import com.zkqy.common.utils.DateUtils;
+import com.zkqy.common.utils.SecurityUtils;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.stereotype.Service;
 import org.springframework.transaction.annotation.Transactional;
@@ -140,4 +143,61 @@ public class MaterialCirculationServiceImpl implements IMaterialCirculationServi
         return AjaxResult.success("取货成功!");
 
     }
+
+    @Override
+    @Transactional
+    public AjaxResult materialReturn(Long id, String returnQuantity) {
+        //查询当前物料流转取货重量,判断退货重量是否大于取货重量
+        MaterialCirculation materialCirculation = materialCirculationMapper.selectMaterialCirculationById(id);
+
+        System.err.println(Double.valueOf(returnQuantity));
+
+
+        if(Double.valueOf(returnQuantity) > Double.valueOf(materialCirculation.getWeight())){
+            return AjaxResult.warn("退货重量大于取货重量!");
+        }
+
+        // 查询当物料前库存数量
+        MaterialInventory materialInventory = materialInventoryMapper.selectMaterialInventoryByMaterialCode(materialCirculation.getGoodsnum());
+        if (materialInventory == null) {
+            //新增库存物料信息
+            MaterialInventory materialInventory1 = new MaterialInventory();
+            materialInventory1.setStockNumber(String.valueOf(new Date().getTime()));//库存编号
+            materialInventory1.setWarehouseEntryNumber(UUID.randomUUID().toString());//入库单编号
+            materialInventory1.setMaterialCode(materialCirculation.getGoodsnum());//物料编号
+            materialInventory1.setQuantity(Double.parseDouble(returnQuantity));//数量
+            materialInventory1.setCreateById(SecurityUtils.getUserId());
+            materialInventory1.setCreateTime(new Date());
+            materialInventoryMapper.insertMaterialInventory(materialInventory1);
+        }else {
+            //库存累加重量
+            Double finallyWeight = materialInventory.getQuantity() + Double.parseDouble(returnQuantity);
+            MaterialInventory materialInventory1 = new MaterialInventory();
+            materialInventory1.setId(materialInventory.getId());
+            materialInventory1.setQuantity(finallyWeight);
+            materialInventory1.setUpdateTime(new Date());
+            materialInventory1.setUpdateById(SecurityUtils.getUserId());
+            materialInventory1.setUpdateBy(SecurityUtils.getUsername());
+            materialInventoryMapper.updateMaterialInventory(materialInventory1);
+        }
+
+        // 更新物料流转单退库重量
+        MaterialCirculation materialCirculation1 = new MaterialCirculation();
+        materialCirculation1.setId(materialCirculation.getId());
+        materialCirculation1.setReturnQuantity(returnQuantity);
+        materialCirculation1.setUpdateById(SecurityUtils.getUserId());
+        materialCirculation1.setUpdateTime(new Date());
+        materialCirculation1.setUpdateBy(SecurityUtils.getUsername());
+        materialCirculation1.setDepositor(SecurityUtils.getUsername());
+        materialCirculationMapper.updateMaterialCirculation(materialCirculation1);
+
+        return AjaxResult.success();
+    }
+
+    @Override
+    public AjaxResult materialPickup(Long id) {
+
+
+        return null;
+    }
 }

+ 6 - 0
zkqy-custom-business/src/main/java/com/zkqy/business/service/impl/SaleOrderServiceImpl.java

@@ -8,6 +8,7 @@ import com.zkqy.business.domain.vo.SaleOrderVO;
 import com.zkqy.business.mapper.SaleCraftMapper;
 import com.zkqy.business.mapper.SaleProductsMapper;
 import com.zkqy.common.utils.DateUtils;
+import com.zkqy.common.utils.SecurityUtils;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.stereotype.Service;
 import com.zkqy.business.mapper.SaleOrderMapper;
@@ -155,4 +156,9 @@ public class SaleOrderServiceImpl implements ISaleOrderService
             }
         }
     }
+
+    @Override
+    public int batchApproval(SaleOrderVO vo) {
+        return saleOrderMapper.batchUpdateSaleOrder(vo);
+    }
 }

+ 12 - 2
zkqy-custom-business/src/main/resources/mapper/MaterialCirculationMapper.xml

@@ -26,10 +26,12 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
         <result property="delFlag"    column="del_flag"    />
         <result property="taskProcessKey"    column="task_process_key"    />
         <result property="taskNodeKey"    column="task_node_key"    />
+        <result property="returnQuantity" column="return_quantity"/>
+        <result property="depositor" column="depositor"/>
     </resultMap>
 
     <sql id="selectMaterialCirculationVo">
-        select id, goodsname, goodsnum, specifications, weight, receiving_process, approval_status, document_status, submitter, approved_by, completed_by, remark, create_by_id, create_by, create_time, update_by_id, update_by, update_time, del_flag, task_process_key, task_node_key from material_circulation
+        select id, goodsname, goodsnum, specifications, weight, receiving_process, approval_status, document_status, submitter, approved_by, completed_by, remark, create_by_id, create_by, create_time, update_by_id, update_by, update_time, del_flag, task_process_key, task_node_key, return_quantity,depositor from {DBNAME}.material_circulation
     </sql>
 
     <select id="selectMaterialCirculationList" parameterType="com.zkqy.business.domain.MaterialCirculation" resultMap="MaterialCirculationResult">
@@ -81,6 +83,8 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
             <if test="delFlag != null">del_flag,</if>
             <if test="taskProcessKey != null">task_process_key,</if>
             <if test="taskNodeKey != null">task_node_key,</if>
+            <if test="returnQuantity != null">return_quantity,</if>
+            <if test="depositor != null">depositor,</if>
          </trim>
         <trim prefix="values (" suffix=")" suffixOverrides=",">
             <if test="goodsname != null">#{goodsname},</if>
@@ -103,6 +107,8 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
             <if test="delFlag != null">#{delFlag},</if>
             <if test="taskProcessKey != null">#{taskProcessKey},</if>
             <if test="taskNodeKey != null">#{taskNodeKey},</if>
+            <if test="returnQuantity != null">#{returnQuantity},</if>
+            <if test="depositor != null">#{depositor},</if>
          </trim>
     </insert>
 
@@ -129,6 +135,8 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
             <if test="delFlag != null">del_flag = #{delFlag},</if>
             <if test="taskProcessKey != null">task_process_key = #{taskProcessKey},</if>
             <if test="taskNodeKey != null">task_node_key = #{taskNodeKey},</if>
+            <if test="returnQuantity != null">return_quantity = #{returnQuantity},</if>
+            <if test="depositor != null">depositor = #{depositor},</if>
         </trim>
         where id = #{id}
     </update>
@@ -163,7 +171,9 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
             mc.create_time,
             mc.update_by_id,
             mc.update_by,
-            mc.update_time
+            mc.update_time,
+            mc.return_quantity,
+            mc.depositor
         FROM
             {DBNAME}.material_circulation mc
                 LEFT JOIN {DBNAME}.materiel m ON mc.goodsnum = m.materiel_code

+ 2 - 8
zkqy-custom-business/src/main/resources/mapper/business/MaterialInventoryMapper.xml

@@ -138,12 +138,9 @@
             <if test="createById != null">create_by_id,</if>
             <if test="createBy != null">create_by,</if>
             <if test="createTime != null">create_time,</if>
-            <if test="updateById != null">update_by_id,</if>
-            <if test="updateBy != null">update_by,</if>
-            <if test="updateTime != null">update_time,</if>
-            <if test="delFlag != null">del_flag,</if>
             <if test="taskProcessKey != null">task_process_key,</if>
             <if test="taskNodeKey != null">task_node_key,</if>
+            del_flag
         </trim>
         <trim prefix="values (" suffix=")" suffixOverrides=",">
             <if test="stockNumber != null">#{stockNumber},</if>
@@ -157,12 +154,9 @@
             <if test="createById != null">#{createById},</if>
             <if test="createBy != null">#{createBy},</if>
             <if test="createTime != null">#{createTime},</if>
-            <if test="updateById != null">#{updateById},</if>
-            <if test="updateBy != null">#{updateBy},</if>
-            <if test="updateTime != null">#{updateTime},</if>
-            <if test="delFlag != null">#{delFlag},</if>
             <if test="taskProcessKey != null">#{taskProcessKey},</if>
             <if test="taskNodeKey != null">#{taskNodeKey},</if>
+            #{delFlag}
         </trim>
     </insert>
 

+ 17 - 0
zkqy-custom-business/src/main/resources/mapper/business/SaleOrderMapper.xml

@@ -203,4 +203,21 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
         where sale_no = #{saleNo} and del_flag = '0'
     </select>
 
+    <update id="batchUpdateSaleOrder" parameterType="com.zkqy.business.domain.vo.SaleOrderVO">
+        update {DBNAME}.sale_order
+        <trim prefix="SET" suffixOverrides=",">
+            <if test="salesman != null">salesman = #{salesman},</if>
+            <if test="saleLeader != null">sale_leader = #{saleLeader},</if>
+            <if test="finance != null">finance = #{finance},</if>
+            <if test="production != null">production = #{production},</if>
+            <if test="saleApprover != null">sale_approver = #{saleApprover},</if>
+            <if test="status != null">status = #{status},</if>
+            <if test="orderType != null">order_type = #{orderType},</if>
+        </trim>
+        where id in
+        <foreach item="id" collection="idList" open="(" separator="," close=")">
+            #{id}
+        </foreach>
+    </update>
+
 </mapper>

+ 9 - 1
zkqy-process-execution/src/main/java/com/zkqy/execution/produce/dispersed/service/impl/CommonServiceImpl.java

@@ -371,8 +371,16 @@ public class CommonServiceImpl implements ICommonService {
 
         String columnName = commonEntity.getConditionMap().get("columnName").toString();
         String columnValue = commonEntity.getConditionMap().get("columnValue").toString();
-        String sqlString = tableSql.getTableSql() + " where " + endSQL + " and sale_order." + columnName + " in (" + columnValue + ")";
 
+        String sqlString = tableSql.getTableSql() + " where " + endSQL + " and sale_order." +
+                columnName + " in (" + columnValue + ")";
+        Map<String, Object> conditionMap = commonEntity.getConditionMap();
+        if (conditionMap.containsKey("columnValue1") && conditionMap.containsKey("columnName1")) {
+            // 键存在于 Map 中
+            String columnName1 = commonEntity.getConditionMap().get("columnName1").toString();
+            String columnValue1 = commonEntity.getConditionMap().get("columnValue1").toString();
+            sqlString = sqlString + " and sale_order." + columnName1 + " " + columnValue1;
+        }
         List<CommonEntity> commonEntities = commonMapper.queryTableList(sqlString);
         //根据sqlKey查询表格数据
         commonEntities.forEach(item -> {

+ 3 - 2
zkqy-ui/src/views/orderMange/approve.vue

@@ -1017,8 +1017,8 @@ export default {
       // console.log(this.formData.salePayType);
       // console.log(this.approveForm.status);
       // console.log(this.approveForm,'approveForm');
-      // return;
       // console.log(this.dict.type.sales_order_type);
+
       this.$refs["approveFormRef"].validate(async (valid) => {
         if (valid) {
           let { status, orderType, saleLeader, finance, production } =
@@ -1062,7 +1062,8 @@ export default {
             } else if (orderType == "1") {
               //库存
               payload.commMap = {
-                status: "5",
+                // status: "5",
+                status: this.approveForm.status,
                 orderType,
                 saleApprover: this.nickName,
                 ...baseFormInfo,

+ 5 - 2
zkqy-ui/src/views/orderMange/financeApprove.vue

@@ -837,11 +837,13 @@ export default {
       // console.log(this.ids);
       // return;
       // console.log(this.dict.type.sales_order_type);
+      // console.log(this.approveForm,'approveForm');
+      // return
       this.$refs["approveFormRef"].validate(async (valid) => {
         if (valid) {
           let payload = {
             idList: this.ids,
-            status: this.approveForm.status,
+            status: this.approveForm.orderType == '1' ? '5' : '3',
             finance: this.nickName,
           };
           let res = await batchApproval(payload);
@@ -1325,8 +1327,9 @@ export default {
           };
         });
       }
-      let { saleOrderSaleNo, saleOrderId } = row;
+      let { saleOrderSaleNo, saleOrderId,saleOrderOrderType } = row;
       this.ids.push(saleOrderId);
+      this.approveForm.orderType = saleOrderOrderType;
       this.approveNo = saleOrderSaleNo;
       try {
         let payLoad = [

+ 3 - 0
zkqy-ui/src/views/orderMange/index.vue

@@ -1439,6 +1439,9 @@ export default {
             delete item.delFlag;
             delete item.sliceTypeLabel;
             delete item.colourNumberLabel;
+            const matchedOption = this.colourNumberOptions.find(option => option.materielCode === item.colourNumber);
+            let taskName = item.productName + '-' + matchedOption.materieColorNumber + '-' + matchedOption.materieEncoding;
+            item.taskName = taskName;
           });
           let productData = {
             //货品表新增数据