diff --git a/src/main/java/com/gaotao/modules/oa/dao/SoRoutingMapper.java b/src/main/java/com/gaotao/modules/oa/dao/SoRoutingMapper.java index f0a20a4..b26f8bc 100644 --- a/src/main/java/com/gaotao/modules/oa/dao/SoRoutingMapper.java +++ b/src/main/java/com/gaotao/modules/oa/dao/SoRoutingMapper.java @@ -4,6 +4,8 @@ import com.gaotao.modules.base.entity.SORoutingData; import org.apache.ibatis.annotations.Mapper; import org.apache.ibatis.annotations.Param; +import java.math.BigDecimal; + /** * 生产订单工艺路线 Mapper接口 */ @@ -42,4 +44,22 @@ public interface SoRoutingMapper { SORoutingData findSoRouting(@Param("site") String site, @Param("orderNo") String orderNo, @Param("itemNo") Double itemNo); + + /** + * 批量更新工艺路线字段(生产总数、总卷数、每卷总数、备注) + * @param site 站点 + * @param orderNo 订单号 + * @param itemNo 工序序号 + * @param productionQty 生产总数 + * @param totalRollQty 总卷数 + * @param totalPerVolume 每卷总数 + * @param remark 备注 + */ + void batchUpdateRoutingFields(@Param("site") String site, + @Param("orderNo") String orderNo, + @Param("itemNo") Double itemNo, + @Param("productionQty") BigDecimal productionQty, + @Param("totalRollQty") BigDecimal totalRollQty, + @Param("totalPerVolume") BigDecimal totalPerVolume, + @Param("remark") String remark); } diff --git a/src/main/java/com/gaotao/modules/shopOrder/controller/SoRoutingController.java b/src/main/java/com/gaotao/modules/shopOrder/controller/SoRoutingController.java new file mode 100644 index 0000000..8dc747f --- /dev/null +++ b/src/main/java/com/gaotao/modules/shopOrder/controller/SoRoutingController.java @@ -0,0 +1,78 @@ +package com.gaotao.modules.shopOrder.controller; + +import com.gaotao.common.constant.SysMsgConstant; +import com.gaotao.common.utils.R; +import com.gaotao.modules.oa.dao.SoRoutingMapper; +import com.gaotao.modules.sys.controller.AbstractController; +import org.springframework.beans.factory.annotation.Autowired; +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 java.math.BigDecimal; +import java.util.List; +import java.util.Map; + +/** + * 生产订单工艺路线Controller + * + * @author sxm + * @date 2024-12-11 + */ +@RestController +@RequestMapping("shoporder/sorouting") +public class SoRoutingController extends AbstractController { + + @Autowired + private SoRoutingMapper soRoutingMapper; + + /** + * 批量更新工艺路线(生产总数、总卷数、每卷总数、备注) + * @param params 工艺路线数据列表 + * @return R + */ + @PostMapping("/batchUpdateSORouting") + public R batchUpdateSORouting(@RequestBody List> params) { + try { + for (Map item : params) { + String site = (String) item.get("site"); + String orderNo = (String) item.get("orderNo"); + Object itemNoObj = item.get("itemNo"); + Double itemNo = null; + if (itemNoObj instanceof Number) { + itemNo = ((Number) itemNoObj).doubleValue(); + } else if (itemNoObj instanceof String) { + itemNo = Double.parseDouble((String) itemNoObj); + } + + Object productionQtyObj = item.get("productionQty"); + BigDecimal productionQty = null; + if (productionQtyObj instanceof Number) { + productionQty = new BigDecimal(productionQtyObj.toString()); + } + + Object totalRollQtyObj = item.get("totalRollQty"); + BigDecimal totalRollQty = null; + if (totalRollQtyObj instanceof Number) { + totalRollQty = new BigDecimal(totalRollQtyObj.toString()); + } + + Object totalPerVolumeObj = item.get("totalPerVolume"); + BigDecimal totalPerVolume = null; + if (totalPerVolumeObj instanceof Number) { + totalPerVolume = new BigDecimal(totalPerVolumeObj.toString()); + } + + String remark = (String) item.get("remark"); + + soRoutingMapper.batchUpdateRoutingFields(site, orderNo, itemNo, + productionQty, totalRollQty, totalPerVolume, remark); + } + return R.ok(getLanguageMsg(SysMsgConstant.OBJECT_ID_200000)); + } catch (Exception e) { + return R.error("批量更新失败:" + e.getMessage()); + } + } +} + diff --git a/src/main/java/com/gaotao/modules/shopOrder/entity/RouteInShopOrderData.java b/src/main/java/com/gaotao/modules/shopOrder/entity/RouteInShopOrderData.java index e3f00a0..ab81ca7 100644 --- a/src/main/java/com/gaotao/modules/shopOrder/entity/RouteInShopOrderData.java +++ b/src/main/java/com/gaotao/modules/shopOrder/entity/RouteInShopOrderData.java @@ -3,6 +3,7 @@ package com.gaotao.modules.shopOrder.entity; import com.fasterxml.jackson.annotation.JsonFormat; import org.springframework.format.annotation.DateTimeFormat; +import java.math.BigDecimal; import java.util.Date; public class RouteInShopOrderData { @@ -17,6 +18,9 @@ public class RouteInShopOrderData { private Double factorUnit_DB; private String factorUnit; private Double qtyRequired; + private BigDecimal productionQty; // 生产总数 + private BigDecimal totalRollQty; // 总卷数 + private BigDecimal totalPerVolume; // 每卷总数 private Double qtyReported; private Double qtyApprove; private Double timeRequired; @@ -273,4 +277,28 @@ public class RouteInShopOrderData { public void setAvailResource(String availResource) { this.availResource = availResource; } + + public BigDecimal getProductionQty() { + return productionQty; + } + + public void setProductionQty(BigDecimal productionQty) { + this.productionQty = productionQty; + } + + public BigDecimal getTotalRollQty() { + return totalRollQty; + } + + public void setTotalRollQty(BigDecimal totalRollQty) { + this.totalRollQty = totalRollQty; + } + + public BigDecimal getTotalPerVolume() { + return totalPerVolume; + } + + public void setTotalPerVolume(BigDecimal totalPerVolume) { + this.totalPerVolume = totalPerVolume; + } } diff --git a/src/main/resources/mapper/oa/SoRoutingMapper.xml b/src/main/resources/mapper/oa/SoRoutingMapper.xml index 858d9c5..1458325 100644 --- a/src/main/resources/mapper/oa/SoRoutingMapper.xml +++ b/src/main/resources/mapper/oa/SoRoutingMapper.xml @@ -131,6 +131,18 @@ AND ItemNo = #{itemNo} + + + UPDATE SORouting SET + production_qty = #{productionQty, jdbcType=DECIMAL}, + total_roll_qty = #{totalRollQty, jdbcType=DECIMAL}, + total_per_volume = #{totalPerVolume, jdbcType=DECIMAL}, + Remark = #{remark} + WHERE Site = #{site} + AND OrderNo = #{orderNo} + AND ItemNo = #{itemNo, jdbcType=DOUBLE} + + diff --git a/src/main/resources/mapper/shopOrder/ShopOrderMapper.xml b/src/main/resources/mapper/shopOrder/ShopOrderMapper.xml index 02006e9..ffdf21d 100644 --- a/src/main/resources/mapper/shopOrder/ShopOrderMapper.xml +++ b/src/main/resources/mapper/shopOrder/ShopOrderMapper.xml @@ -575,6 +575,9 @@ , R.FactorUnit_DB , R.FactorUnit , R.QtyRequired + , R.production_qty as productionQty + , R.total_roll_qty as totalRollQty + , R.total_per_volume as totalPerVolume , R.QtyReported , R.QtyApprove , R.TimeRequired