north-glass-erp/northglass-erp/src/views/sd/order/CreateOrder.vue
@@ -1005,7 +1005,9 @@ request.post(`/order/saveOrderTitle`,order).then((res) => { if(res.code==200){ ElMessage.success(t('basicData.msg.saveSuccess')) router.push({path:'/main/order/selectOrder'}) router.push({path:'/main/order/createOrder',query:{ orderId:titleUploadData.value.orderId, random:Math.random()}}) }else { ElMessage.error(res.msg) } @@ -1669,7 +1671,7 @@ </vxe-grid> </div> <el-dialog v-model="dialogTableVisible" :title="$t('order.processingNote')" style="width: 60%;height:75% "> <el-dialog v-model="dialogTableVisible" :draggable="true" :title="$t('order.processingNote')" style="width: 60%;height:75% "> <el-input v-model="titleUploadData.processingNote" type="textarea" north-glass-erp/src/main/java/com/example/erp/controller/mm/MaterialInventoryController.java
@@ -182,6 +182,13 @@ } @ApiOperation("mes切割报工") @PostMapping ("/mesMaterialOutbound") public Result mesMaterialOutbound(@RequestBody Map<String,Object> reportingWork) { return Result.seccess(materialInventoryService.mesMaterialOutbound(reportingWork)); } } north-glass-erp/src/main/java/com/example/erp/mapper/mm/MaterialInventoryMapper.java
@@ -116,6 +116,9 @@ Boolean updateMaterialInventoryAvailableInventoryOut(@Param("inventoryId") Long inventoryId, @Param("quantity") Integer quantity); Boolean updateMaterialInventoryAvailableInventoryOutMes(@Param("inventoryId") Long inventoryId, @Param("quantity") Integer quantity); Boolean updateMaterialInventoryAvailableInventoryInt(@Param("inventoryId") Long inventoryId, @Param("quantity") Integer quantity); @@ -231,4 +234,20 @@ List<MaterialLog> exportMaterialLogReport(List<LocalDate> dates, String type); List<MaterialOutbound> getSelectMaterialOutboundProjectNo(@Param("projectNo") String projectNo); OptimizeUse getSelectOptimizeUses(@Param("projectNo") String projectNo,@Param("width") Double width,@Param("height") Double height); List<MaterialOutboundDetail> getSelectMaterialOutboundOptimizeUses(@Param("useId") Integer useId); Boolean updateMaterialOutboundOptimizeUses(@Param("useId") Integer useId); Boolean insertMaterialOutboundDetailOptimizeUses(@Param("materialOutboundId") String materialOutboundId,@Param("number") Integer number, @Param("inventoryId") Long inventoryId,@Param("materialCode") Long materialCode,@Param("inventoryArea") String inventory_area, @Param("useId") Integer useId,@Param("outboundQuantity") Integer outboundQuantity, @Param("singlePieceArea") Double singlePieceArea,@Param("dateOfManufacture") LocalDate dateOfManufacture); Boolean insertMaterialOutboundOptimizeUses(@Param("materialOutboundId") String materialOutboundId,@Param("projectNo") String projectNo, @Param("name") String name); } north-glass-erp/src/main/java/com/example/erp/service/mm/MaterialInventoryService.java
@@ -1,18 +1,22 @@ package com.example.erp.service.mm; import cn.hutool.core.util.StrUtil; import com.alibaba.fastjson.JSON; import com.alibaba.fastjson.JSONArray; import com.alibaba.fastjson.JSONObject; import com.baomidou.dynamic.datasource.annotation.DS; import com.baomidou.mybatisplus.core.conditions.update.LambdaUpdateWrapper; import com.example.erp.common.Constants; import com.example.erp.dto.mm.FinishedOperateLogDTO; import com.example.erp.entity.mm.*; import com.example.erp.entity.pp.FlowCard; import com.example.erp.entity.pp.OptimizeUse; import com.example.erp.entity.pp.*; import com.example.erp.entity.sd.Delivery; import com.example.erp.entity.sd.DeliveryDetail; import com.example.erp.entity.sd.OrderDetail; import com.example.erp.entity.sd.OrderProcessDetail; import com.example.erp.entity.userInfo.Log; import com.example.erp.entity.userInfo.SysError; import com.example.erp.exception.ServiceException; import com.example.erp.mapper.mm.BasicWarehouseTypeMapper; import com.example.erp.mapper.mm.MaterialInventoryMapper; import com.example.erp.mapper.mm.MaterialLogMapper; @@ -23,6 +27,8 @@ import org.springframework.stereotype.Service; import org.springframework.transaction.annotation.Transactional; import org.springframework.transaction.interceptor.TransactionAspectSupport; import java.time.LocalDateTime; import java.util.List; import java.util.ArrayList; @@ -939,7 +945,49 @@ @Transactional(rollbackFor = Exception.class) public boolean mesMaterialOutbound(Map<String, Object> reportingWorkMap) { //接收解析主附表信息 JSONObject reportingWorkJson = new JSONObject(reportingWorkMap); String projectNo=reportingWorkJson.get("projectNo").toString(); Double width= Double.valueOf(reportingWorkJson.get("width").toString()); Double height= Double.valueOf(reportingWorkJson.get("height").toString()); Integer quantity= Integer.valueOf(reportingWorkJson.get("quantity").toString()); List<MaterialOutbound> materialOutboundList=materialInventoryMapper.getSelectMaterialOutboundProjectNo(projectNo); OptimizeUse optimizeUses=materialInventoryMapper.getSelectOptimizeUses(projectNo,width,height); List<MaterialOutboundDetail> materialOutboundDetailList=materialInventoryMapper.getSelectMaterialOutboundOptimizeUses(optimizeUses.getId()); List<MaterialOutboundDetail> materialOutboundDetailList1=materialInventoryMapper.getSelectMaterialOutboundOptimizeUses(null); MaterialInventory materialInventory=materialInventoryMapper.getMaterialInventoryById(Long.valueOf(optimizeUses.getRawStockCode())); if(materialOutboundList.size()==1){ if(materialOutboundDetailList.size()==1){ materialInventoryMapper.updateMaterialOutboundOptimizeUses(optimizeUses.getId()); materialInventoryMapper.updateMaterialInventoryAvailableInventoryOutMes(Long.valueOf(optimizeUses.getRawStockCode()),quantity); }else{ materialInventoryMapper.insertMaterialOutboundDetailOptimizeUses(materialOutboundList.get(0).getMaterialOutboundId(), materialOutboundDetailList1.size()+1,Long.valueOf(optimizeUses.getRawStockCode()),materialInventory.getMaterialCode(),materialInventory.getInventoryArea(), optimizeUses.getId(),quantity,materialInventory.getSinglePieceArea(),materialInventory.getDateOfManufacture()); materialInventoryMapper.updateMaterialInventoryAvailableInventoryOutMes(Long.valueOf(optimizeUses.getRawStockCode()),quantity); } }else if(materialOutboundList.isEmpty()){ String oddNumber = orderNumberSetting("出库"); materialInventoryMapper.insertMaterialOutboundOptimizeUses(oddNumber,projectNo,reportingWorkJson.get("userName").toString()); materialInventoryMapper.insertMaterialOutboundDetailOptimizeUses(oddNumber, materialOutboundDetailList1.size()+1,Long.valueOf(optimizeUses.getRawStockCode()),materialInventory.getMaterialCode(),materialInventory.getInventoryArea(), optimizeUses.getId(),quantity,materialInventory.getSinglePieceArea(),materialInventory.getDateOfManufacture()); materialInventoryMapper.updateMaterialInventoryAvailableInventoryOutMes(Long.valueOf(optimizeUses.getRawStockCode()),quantity); }else{ return false; } //保存日志 Log log = new Log(); log.setContent(reportingWorkMap.toString()); log.setFunction("mesMaterialOutbound报工新增"); log.setOperatorId((String) reportingWorkJson.get("userId")); log.setOperator((String) reportingWorkJson.get("userName")); logService.saveLog(log); return true; } north-glass-erp/src/main/resources/mapper/mm/MaterialInventory.xml
@@ -727,6 +727,13 @@ where id=#{inventoryId} </update> <update id="updateMaterialInventoryAvailableInventoryOutMes"> update mm.material_inventory set available_quantity=available_quantity-#{quantity},inventory_quantity=inventory_quantity-#{quantity}, plan_quantity=plan_quantity-#{quantity},total_area=inventory_quantity*single_piece_area where id=#{inventoryId} </update> <update id="updateMaterialOutboundToExamine"> update mm.material_outbound set reviewed_state=#{reviewedState},reviewed=#{reviewed},reviewed_time=now() @@ -1061,5 +1068,43 @@ </where> </select> <select id="getSelectMaterialOutboundProjectNo"> select * from mm.material_outbound mo where order_id=#{projectNo} </select> <select id="getSelectOptimizeUses"> select * from pp.optimize_use mo where project_no=#{projectNo} and width=#{width} and height=#{height} </select> <select id="getSelectMaterialOutboundOptimizeUses"> select * from mm.material_outbound_detail mo where <where> <if test="useId != null"> and use_id=#{useId} </if> </where> </select> <select id="updateMaterialOutboundOptimizeUses"> update mm.material_outbound_detail set outbound_quantity=outbound_quantity+#{quantity} where use_id=#{useId}; </select> <insert id="insertMaterialOutboundDetailOptimizeUses" useGeneratedKeys="true" > insert into mm.material_outbound_detail (material_outbound_id,material_outbound_number,material_code,use_id,inventory_id,inventory_organization, outbound_quantity,single_piece_area,inventory_area,date_of_manufacture) values ( #{materialOutboundId} ,#{number},#{materialCode},#{useId},#{inventoryId},'原片库',#{outboundQuantity}, #{materialOutboundDetail.singlePieceArea},#{materialOutboundDetail.inventoryArea},#{materialOutboundDetail.dateOfManufacture} ) </insert> <insert id="insertMaterialOutboundOptimizeUses" useGeneratedKeys="true" > insert into mm.material_outbound(material_outbound_id,material_requisition_personnel,material_requisition_team,order_id,outbound_type, warehouse_manager,material_requisition_date,reviewed_state,reviewed,create_time,reviewed_time) values ( #{materialOutboundId} ,#{projectNo},'标准出库',#{name},now(),1,#{name},now(),now() ) </insert> </mapper>