From 0e46bb0cfc8b59ad5527f0b70c49f95aeac4bbbd Mon Sep 17 00:00:00 2001 From: zyx <zyx123456> Date: 星期五, 05 一月 2024 13:38:05 +0800 Subject: [PATCH] # 入库拣货功能添加 --- src/main/java/com/zy/asrs/service/ConfigTypeService.java | 8 src/main/java/com/zy/asrs/service/impl/ConfigTypeServiceImpl.java | 12 src/main/java/com/zy/asrs/service/PlaQtyService.java | 8 src/main/java/com/zy/asrs/service/impl/PlaQtyServiceImpl.java | 12 src/main/webapp/views/picking/picking.html | 8 src/main/java/com/zy/asrs/entity/ConfigType.java | 18 src/main/webapp/views/order/order.html | 2 src/main/java/com/zy/asrs/mapper/ConfigTypeMapper.java | 12 src/main/java/com/zy/asrs/mapper/PlaQtyMapper.java | 12 src/main/webapp/static/js/pla/plaDetl.js | 4 src/main/webapp/static/js/order/out.js | 35 + src/main/java/com/zy/asrs/service/impl/MobileServiceImpl.java | 73 +++ src/main/java/com/zy/asrs/controller/OutController.java | 65 +++ src/main/java/com/zy/asrs/controller/ConfigTypeController.java | 74 +++ src/main/java/com/zy/asrs/service/MobileService.java | 4 src/main/webapp/static/js/pla/productionInfo.js | 6 src/main/java/com/zy/asrs/controller/OrderController.java | 4 src/main/webapp/static/js/picking/picking.js | 10 src/main/webapp/views/configType/configTypeAdd.html | 50 ++ src/main/java/com/zy/asrs/controller/PlaController.java | 1 src/main/java/com/zy/asrs/entity/OrderDetl.java | 17 src/main/webapp/static/js/pla/qualityInfo.js | 4 src/main/java/com/zy/asrs/controller/MobileController.java | 33 + src/main/java/com/zy/asrs/entity/Pla.java | 28 src/main/java/com/zy/asrs/entity/PlaQty.java | 52 ++ src/main/java/com/zy/asrs/service/impl/PlaServiceImpl.java | 75 +++ src/main/resources/mapper/OrderDetlMapper.xml | 8 src/main/java/com/zy/asrs/service/PlaService.java | 8 src/main/webapp/views/pla/plaDetl.html | 21 + src/main/java/com/zy/asrs/service/impl/OrderDetlServiceImpl.java | 10 src/main/webapp/static/js/order/order.js | 63 ++- src/main/webapp/views/order/out.html | 2 src/main/webapp/static/js/configType/configType.js | 387 +++++++++++++++++++ src/main/webapp/views/configType/configType.html | 59 ++ 34 files changed, 1,100 insertions(+), 85 deletions(-) diff --git a/src/main/java/com/zy/asrs/controller/ConfigTypeController.java b/src/main/java/com/zy/asrs/controller/ConfigTypeController.java new file mode 100644 index 0000000..7b1a9eb --- /dev/null +++ b/src/main/java/com/zy/asrs/controller/ConfigTypeController.java @@ -0,0 +1,74 @@ +package com.zy.asrs.controller; + +import com.baomidou.mybatisplus.mapper.EntityWrapper; +import com.baomidou.mybatisplus.plugins.Page; +import com.core.annotations.ManagerAuth; +import com.core.common.Cools; +import com.core.common.DateUtils; +import com.core.common.R; +import com.zy.asrs.entity.ConfigType; +import com.zy.asrs.service.ConfigTypeService; +import com.zy.common.web.BaseController; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.web.bind.annotation.PathVariable; +import org.springframework.web.bind.annotation.RequestMapping; +import org.springframework.web.bind.annotation.RequestParam; +import org.springframework.web.bind.annotation.RestController; + +import java.util.Date; +import java.util.Map; + +@RestController +public class ConfigTypeController extends BaseController { + + @Autowired + private ConfigTypeService configTypeService; + + @RequestMapping(value = "/cinfigType/{id}/auth") + @ManagerAuth + public R get(@PathVariable("id") Long id) { + return R.ok(configTypeService.selectById(String.valueOf(id))); + } + + @RequestMapping(value = "/cinfigType/list/auth") + @ManagerAuth + public R list(@RequestParam(defaultValue = "1")Integer curr, + @RequestParam(defaultValue = "10")Integer limit, + @RequestParam(required = false)String orderByField, + @RequestParam(required = false)String orderByType, + @RequestParam Map<String, Object> param){ + excludeTrash(param); + EntityWrapper<ConfigType> wrapper = new EntityWrapper<>(); + convert(param, wrapper); + wrapper.orderBy("id", false); + + return R.ok(configTypeService.selectPage(new Page<>(curr, limit), wrapper)); + } + + @RequestMapping(value = "/configType/add/auth") + @ManagerAuth + public R list(ConfigType configType){ + if (Cools.isEmpty(configType)){ + return R.error(); + } + configType.setCreateTime(new Date()); + configTypeService.insert(configType); + return R.ok(); + + } + + private <T> void convert(Map<String, Object> map, EntityWrapper<T> wrapper){ + for (Map.Entry<String, Object> entry : map.entrySet()){ + String val = String.valueOf(entry.getValue()); + if (val.contains(RANGE_TIME_LINK)){ + String[] dates = val.split(RANGE_TIME_LINK); + wrapper.ge(entry.getKey(), DateUtils.convert(dates[0])); + wrapper.le(entry.getKey(), DateUtils.convert(dates[1])); + } else { + wrapper.like(entry.getKey(), val); + } + } + } + + +} diff --git a/src/main/java/com/zy/asrs/controller/MobileController.java b/src/main/java/com/zy/asrs/controller/MobileController.java index 46ebd80..6329b95 100644 --- a/src/main/java/com/zy/asrs/controller/MobileController.java +++ b/src/main/java/com/zy/asrs/controller/MobileController.java @@ -2,7 +2,6 @@ import com.alibaba.fastjson.JSONObject; import com.baomidou.mybatisplus.mapper.EntityWrapper; -import com.baomidou.mybatisplus.mapper.Wrapper; import com.core.annotations.ManagerAuth; import com.core.common.BaseRes; import com.core.common.Cools; @@ -16,8 +15,6 @@ import com.zy.asrs.entity.result.MobileAdjustResult; import com.zy.asrs.mapper.ManLocDetlMapper; import com.zy.asrs.service.*; -import com.zy.common.model.LocDto; -import com.zy.common.model.TaskDto; import com.zy.common.model.WrkDto; import com.zy.common.web.BaseController; import org.springframework.beans.factory.annotation.Autowired; @@ -421,5 +418,35 @@ return mobileService.manDetlOriginOut(json,getUser()); } + @RequestMapping("/plaDetl/packin/v1") +// @ManagerAuth(memo="pla鍏ュ簱") + public R plaPackIn(@RequestBody JSONObject json){ + String locNo = json.get("locNo").toString(); + String batch = json.get("batch").toString(); + String packageNo = json.get("packageNo").toString(); + if(Cools.isEmpty(locNo) || Cools.isEmpty(batch) || Cools.isEmpty(packageNo)){ + return R.error("鏈夊弬鏁颁负绌猴紝鏃犳硶鍏ュ簱"); + } + mobileService.plaPakin(locNo,batch,packageNo); + return R.ok(); + } + @RequestMapping("/plaDetl/packout/v1") +// @ManagerAuth(memo="pla鍑哄簱") + public R plaPackOut(@RequestBody JSONObject json){ + String locNo = json.get("locNo").toString(); + String batch = json.get("batch").toString(); + String packageNo = json.get("packageNo").toString(); + String orderNo = json.get("orderNo").toString(); + String orderDetlId = json.get("orderDetlId").toString(); + String wrkNo = json.get("wrkNo").toString(); + Double anfme = Double.parseDouble(json.get("anfme").toString()); + + if(Cools.isEmpty(locNo) || Cools.isEmpty(batch) || Cools.isEmpty(packageNo)){ + return R.error("鏈夊弬鏁颁负绌猴紝鏃犳硶鍏ュ簱"); + } + + mobileService.plaPakout(locNo,batch,packageNo,orderNo,orderDetlId,wrkNo,anfme); + return R.ok(); + } } diff --git a/src/main/java/com/zy/asrs/controller/OrderController.java b/src/main/java/com/zy/asrs/controller/OrderController.java index e1ec863..0302aef 100644 --- a/src/main/java/com/zy/asrs/controller/OrderController.java +++ b/src/main/java/com/zy/asrs/controller/OrderController.java @@ -9,7 +9,6 @@ import com.core.annotations.ManagerAuth; import com.core.common.*; import com.core.exception.CoolException; -import com.sun.org.apache.xpath.internal.operations.Or; import com.zy.asrs.entity.*; import com.zy.asrs.entity.param.OrderDomainParam; import com.zy.asrs.entity.result.OrderDetlVo; @@ -228,7 +227,8 @@ List<DetlDto> list = new ArrayList<>(); for (OrderDetl orderDetl : param.getOrderDetlList()) { DetlDto dto = new DetlDto(orderDetl.getMatnr(), orderDetl.getBatch()); - if (DetlDto.has(list, dto)) { + //if (DetlDto.has(list, dto)) { + if(false){ OrderDetl item = orderDetlService.selectItem(order.getId(), orderDetl.getMatnr(), orderDetl.getBatch()); item.setAnfme(item.getAnfme() + orderDetl.getAnfme()); if (!orderDetlService.updateById(item)) { diff --git a/src/main/java/com/zy/asrs/controller/OutController.java b/src/main/java/com/zy/asrs/controller/OutController.java index 934e4e8..c8b4695 100644 --- a/src/main/java/com/zy/asrs/controller/OutController.java +++ b/src/main/java/com/zy/asrs/controller/OutController.java @@ -11,13 +11,15 @@ import com.zy.common.model.TaskDto; import com.zy.common.web.BaseController; import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.transaction.annotation.Transactional; import org.springframework.web.bind.annotation.PostMapping; import org.springframework.web.bind.annotation.RequestBody; import org.springframework.web.bind.annotation.RequestParam; import org.springframework.web.bind.annotation.RestController; -import java.math.BigDecimal; -import java.util.*; +import java.util.ArrayList; +import java.util.Date; +import java.util.List; import java.util.stream.Collectors; /** @@ -45,6 +47,10 @@ private ManPakOutService manPakOutService; @Autowired private ManLocDetlService manLocDetlService; + @Autowired + private PlaService plaService; + @Autowired + private PlaQtyService plaQtyService; @PostMapping("/out/pakout/orderDetlIds/auth") @@ -68,6 +74,15 @@ } } + List<PlaQty> plaQties = new ArrayList<>(); + + for (OrderDetl orderDetl : orderDetls) { + plaService.queryStock(orderDetl,plaQties); + } + + return R.ok(plaQties); + +/* Set<String> exist = new HashSet<>(); for (OrderDetl orderDetl : orderDetls) { @@ -108,12 +123,13 @@ locDtos.add(locDto); } } - return R.ok().add(locDtos); + return R.ok().add(locDtos); */ } @PostMapping("/out/pakout/auth") @ManagerAuth(memo = "璁㈠崟鍑哄簱") public synchronized R pakout(@RequestBody List<LocDto> locDtos) throws InterruptedException { + int[][] is=new int[locDtos.size()][2]; for (int i=0;i<locDtos.size();i++){ LocDto locDto=locDtos.get(locDtos.size()-1-i); @@ -168,8 +184,29 @@ @PostMapping("/out/pakout2/auth") @ManagerAuth(memo = "鐢熸垚鎷h揣鍗�") - public synchronized R pakout2(@RequestBody List<LocDto> locDtos) throws InterruptedException { - int[][] is = new int[locDtos.size()][2]; + @Transactional + public synchronized R pakout2(@RequestBody List<PlaQty> plaQties) throws InterruptedException { + + for (PlaQty plaQty : plaQties){ + if(Cools.isEmpty(plaQty.getLocNo())){ + continue; + } + plaQtyService.insert(plaQty); + addPakOUT(plaQty); + + Pla pla = plaService.selectByBatchAndPackageNo(plaQty.getBatch(), plaQty.getPackageNo()); + pla.setQtyAnfme(pla.getQtyAnfme() + plaQty.getQtyAnfme()); + plaService.updateById(pla); + + OrderDetl orderDetl = orderDetlService.selectById(plaQty.getOrderDetlId()); + orderDetl.setWorkQty(orderDetl.getWorkQty() + plaQty.getQtyAnfme()); + orderDetlService.updateById(orderDetl); + orderService.updateSettle(plaQty.getOrderId(),2L,null); + } + + return R.ok(); + + /* int[][] is = new int[locDtos.size()][2]; List<String> matnrs=new ArrayList<>(); for (int i = 0; i < locDtos.size(); i++) { LocDto locDto = locDtos.get(locDtos.size() - 1 - i); @@ -261,6 +298,24 @@ addPakOUT(locDto,uuid).equals(R.ok()); } } + return R.ok(); */ + } + + private R addPakOUT(PlaQty plaQty){ + ManPakOut manPakOut=new ManPakOut(); + manPakOut.setWrkNo(plaQty.getOrderNo()+"-"+System.currentTimeMillis()); + manPakOut.setWrkSts((long)1); + manPakOut.setAnfme(plaQty.getQtyAnfme()); + manPakOut.setLocNo(plaQty.getLocNo()); + manPakOut.setBatch(plaQty.getBatch()); + manPakOut.setBarcode(plaQty.getPackageNo()); + manPakOut.setUuid(String.valueOf(System.currentTimeMillis())); + manPakOut.setCreateTime(new Date()); + manPakOut.setUpdateTime(new Date()); + manPakOut.setCount(0.0); + manPakOut.setDocNum(plaQty.getOrderNo()); + manPakOut.setNodeId(plaQty.getOrderDetlId()); + manPakOutService.insert(manPakOut); return R.ok(); } diff --git a/src/main/java/com/zy/asrs/controller/PlaController.java b/src/main/java/com/zy/asrs/controller/PlaController.java index db9776e..6cbdfc6 100644 --- a/src/main/java/com/zy/asrs/controller/PlaController.java +++ b/src/main/java/com/zy/asrs/controller/PlaController.java @@ -56,7 +56,6 @@ return R.ok(); } - private <T> void convert(Map<String, Object> map, EntityWrapper<T> wrapper){ for (Map.Entry<String, Object> entry : map.entrySet()){ String val = String.valueOf(entry.getValue()); diff --git a/src/main/java/com/zy/asrs/entity/ConfigType.java b/src/main/java/com/zy/asrs/entity/ConfigType.java new file mode 100644 index 0000000..dfa0734 --- /dev/null +++ b/src/main/java/com/zy/asrs/entity/ConfigType.java @@ -0,0 +1,18 @@ +package com.zy.asrs.entity; + +import com.baomidou.mybatisplus.annotations.TableId; +import com.baomidou.mybatisplus.annotations.TableName; +import com.baomidou.mybatisplus.enums.IdType; +import lombok.Data; + +import java.util.Date; + +@Data +@TableName("asr_config_type") +public class ConfigType { + @TableId(value = "id", type = IdType.AUTO) + private Long id; + private String type; + private String value; + private Date createTime; +} diff --git a/src/main/java/com/zy/asrs/entity/OrderDetl.java b/src/main/java/com/zy/asrs/entity/OrderDetl.java index 5b7533c..1922dc7 100644 --- a/src/main/java/com/zy/asrs/entity/OrderDetl.java +++ b/src/main/java/com/zy/asrs/entity/OrderDetl.java @@ -327,6 +327,23 @@ @TableField("uuid") private String uuid; + //鏈�澶х啍鎸� + private double fingerMeltingMin; + //鏈�灏忕啍鎸� + private double fingerMeltingMax; + //鏈�澶х啍鐐� + private double fusingPointMin; + //鏈�灏忕啍鐐� + private double fusingPointMax; + //鏈�澶ч粍搴� + private double yellownessMin; + //鏈�澶ч粍搴� + private double yellownessMax; + //鏈�灏忎笉閫忔槑搴� + private double opacityMin; + //鏈�澶т笉閫忔槑搴� + private double opacityMax; + public String getOwner$(){ LocOwnerService service = SpringUtils.getBean(LocOwnerService.class); LocOwner locOwner = service.selectById(this.owner); diff --git a/src/main/java/com/zy/asrs/entity/Pla.java b/src/main/java/com/zy/asrs/entity/Pla.java index 9e3c488..17e4a38 100644 --- a/src/main/java/com/zy/asrs/entity/Pla.java +++ b/src/main/java/com/zy/asrs/entity/Pla.java @@ -30,7 +30,7 @@ private String brand; //閲嶉噺 - private double weight; + private Double weight; //杞﹂棿 private String workshop; @@ -48,37 +48,37 @@ private String filmWrap; //鐔旀寚 - private double fingerMelting; + private Double fingerMelting; //鐔旂偣 - private double fusingPoint; + private Double fusingPoint; //鎸ュ彂浠�1 - private double vadf1; + private Double vadf1; //鎸ュ彂浠�2 - private double vadf2; + private Double vadf2; //榛勫害 - private double yellowness; + private Double yellowness; //涓嶉�忔槑搴� - private double opacity; + private Double opacity; //姘村垎 - private double water; + private Double water; //L鍊� - private double l; + private Double l; //a鍊� - private double a; + private Double a; //b鍊� - private double b; + private Double b; //濉厖 - private double fillIn; + private Double fillIn; //璐ㄩ噺鐘舵�� private String massState; @@ -93,7 +93,9 @@ private String locNo; //鍓╀綑閲嶉噺 - private String weightAnfme; + private Double weightAnfme = 0.0; + //鍓╀綑閲嶉噺 + private Double qtyAnfme = 0.0; //鐘舵�� private String status; diff --git a/src/main/java/com/zy/asrs/entity/PlaQty.java b/src/main/java/com/zy/asrs/entity/PlaQty.java new file mode 100644 index 0000000..80c0f73 --- /dev/null +++ b/src/main/java/com/zy/asrs/entity/PlaQty.java @@ -0,0 +1,52 @@ +package com.zy.asrs.entity; + +import com.baomidou.mybatisplus.annotations.TableId; +import com.baomidou.mybatisplus.annotations.TableName; +import com.baomidou.mybatisplus.enums.IdType; +import io.swagger.annotations.ApiModelProperty; +import lombok.Data; + +import java.util.Date; + +@Data +@TableName("asr_pla_qty") +public class PlaQty { + @ApiModelProperty(value= "ID") + @TableId(value = "id", type = IdType.AUTO) + private Long id; + + //鎵瑰彿 + private String batch; + + //鍖呰鍙� + private String packageNo; + + //鍗曟嵁鏄庣粏id + private Long orderDetlId; + + //鍗曟嵁id + private Long orderId; + + //鍗曟嵁缂栧彿 + private String orderNo; + + //璇ユ槑缁嗗浜庤鎵规鐨刾la浣滀笟鏁伴噺 + private Double qtyAnfme; + + //搴撲綅鍙� + private String locNo; + + //鍒涘缓鏃堕棿 + private Date createTime; + + public PlaQty(String batch, String packageNo, Long orderDetlId, Long orderId, String orderNo, Double qtyAnfme, String locNo, Date createTime) { + this.batch = batch; + this.packageNo = packageNo; + this.orderDetlId = orderDetlId; + this.orderNo = orderNo; + this.qtyAnfme = qtyAnfme; + this.locNo = locNo; + this.createTime = createTime; + this.orderId = orderId; + } +} diff --git a/src/main/java/com/zy/asrs/mapper/ConfigTypeMapper.java b/src/main/java/com/zy/asrs/mapper/ConfigTypeMapper.java new file mode 100644 index 0000000..9042efb --- /dev/null +++ b/src/main/java/com/zy/asrs/mapper/ConfigTypeMapper.java @@ -0,0 +1,12 @@ +package com.zy.asrs.mapper; + +import com.baomidou.mybatisplus.mapper.BaseMapper; +import com.zy.asrs.entity.ConfigType; +import org.apache.ibatis.annotations.Mapper; +import org.springframework.stereotype.Repository; + +@Mapper +@Repository +public interface ConfigTypeMapper extends BaseMapper<ConfigType> { + +} diff --git a/src/main/java/com/zy/asrs/mapper/PlaQtyMapper.java b/src/main/java/com/zy/asrs/mapper/PlaQtyMapper.java new file mode 100644 index 0000000..176e549 --- /dev/null +++ b/src/main/java/com/zy/asrs/mapper/PlaQtyMapper.java @@ -0,0 +1,12 @@ +package com.zy.asrs.mapper; + +import com.baomidou.mybatisplus.mapper.BaseMapper; +import com.zy.asrs.entity.PlaQty; +import org.apache.ibatis.annotations.Mapper; +import org.springframework.stereotype.Repository; + +@Mapper +@Repository +public interface PlaQtyMapper extends BaseMapper<PlaQty> { + +} diff --git a/src/main/java/com/zy/asrs/service/ConfigTypeService.java b/src/main/java/com/zy/asrs/service/ConfigTypeService.java new file mode 100644 index 0000000..f51c0a5 --- /dev/null +++ b/src/main/java/com/zy/asrs/service/ConfigTypeService.java @@ -0,0 +1,8 @@ +package com.zy.asrs.service; + +import com.baomidou.mybatisplus.service.IService; +import com.zy.asrs.entity.ConfigType; + +public interface ConfigTypeService extends IService<ConfigType> { + +} diff --git a/src/main/java/com/zy/asrs/service/MobileService.java b/src/main/java/com/zy/asrs/service/MobileService.java index e21dc1c..408bed4 100644 --- a/src/main/java/com/zy/asrs/service/MobileService.java +++ b/src/main/java/com/zy/asrs/service/MobileService.java @@ -53,4 +53,8 @@ R manDetlOrigInNo(JSONObject json, User user); R manDetlOriginOut(JSONObject json, User user); + + void plaPakin(String locNo, String batch, String packageNo); + + void plaPakout(String locNo, String batch, String packageNo, String orderNo, String orderDetlId, String wrkNo,Double anfme); } diff --git a/src/main/java/com/zy/asrs/service/PlaQtyService.java b/src/main/java/com/zy/asrs/service/PlaQtyService.java new file mode 100644 index 0000000..92116fc --- /dev/null +++ b/src/main/java/com/zy/asrs/service/PlaQtyService.java @@ -0,0 +1,8 @@ +package com.zy.asrs.service; + +import com.baomidou.mybatisplus.service.IService; +import com.zy.asrs.entity.PlaQty; + +public interface PlaQtyService extends IService<PlaQty> { + +} diff --git a/src/main/java/com/zy/asrs/service/PlaService.java b/src/main/java/com/zy/asrs/service/PlaService.java index 7056a17..f73490f 100644 --- a/src/main/java/com/zy/asrs/service/PlaService.java +++ b/src/main/java/com/zy/asrs/service/PlaService.java @@ -1,8 +1,16 @@ package com.zy.asrs.service; import com.baomidou.mybatisplus.service.IService; +import com.zy.asrs.entity.OrderDetl; import com.zy.asrs.entity.Pla; +import com.zy.asrs.entity.PlaQty; + +import java.util.List; public interface PlaService extends IService<Pla> { + Pla selectByBatchAndPackageNo(String batch, String packageNo); + + void queryStock(OrderDetl orderDetl, List<PlaQty> plaQties); + } diff --git a/src/main/java/com/zy/asrs/service/impl/ConfigTypeServiceImpl.java b/src/main/java/com/zy/asrs/service/impl/ConfigTypeServiceImpl.java new file mode 100644 index 0000000..b7f0d59 --- /dev/null +++ b/src/main/java/com/zy/asrs/service/impl/ConfigTypeServiceImpl.java @@ -0,0 +1,12 @@ +package com.zy.asrs.service.impl; + +import com.baomidou.mybatisplus.service.impl.ServiceImpl; +import com.zy.asrs.entity.ConfigType; +import com.zy.asrs.mapper.ConfigTypeMapper; +import com.zy.asrs.service.ConfigTypeService; +import org.springframework.stereotype.Service; + +@Service +public class ConfigTypeServiceImpl extends ServiceImpl<ConfigTypeMapper, ConfigType> implements ConfigTypeService { + +} diff --git a/src/main/java/com/zy/asrs/service/impl/MobileServiceImpl.java b/src/main/java/com/zy/asrs/service/impl/MobileServiceImpl.java index 9e92560..9bf7fa4 100644 --- a/src/main/java/com/zy/asrs/service/impl/MobileServiceImpl.java +++ b/src/main/java/com/zy/asrs/service/impl/MobileServiceImpl.java @@ -1,26 +1,24 @@ package com.zy.asrs.service.impl; -import com.alibaba.fastjson.JSON; import com.alibaba.fastjson.JSONArray; import com.alibaba.fastjson.JSONObject; import com.baomidou.mybatisplus.mapper.EntityWrapper; import com.baomidou.mybatisplus.mapper.Wrapper; -import com.core.common.*; +import com.core.common.BaseRes; +import com.core.common.Cools; +import com.core.common.DateUtils; +import com.core.common.R; import com.core.exception.CoolException; -import com.sun.org.apache.xpath.internal.operations.Or; import com.zy.asrs.entity.*; -import com.zy.asrs.entity.param.*; +import com.zy.asrs.entity.param.CombParam; +import com.zy.asrs.entity.param.MobileAdjustNewParam; +import com.zy.asrs.entity.param.MobileAdjustParam; +import com.zy.asrs.entity.param.OffSaleParam; import com.zy.asrs.mapper.ManLocDetlMapper; import com.zy.asrs.service.*; -import com.zy.asrs.utils.MatUtils; import com.zy.asrs.utils.SaasUtils; -import com.zy.common.CodeRes; -import com.zy.common.constant.MesConstant; -import com.zy.common.entity.Parameter; import com.zy.common.model.DetlDto; -import com.zy.common.model.MesCombParam; import com.zy.common.service.CommonService; -import com.zy.common.utils.HttpHandler; import com.zy.common.utils.Synchro; import com.zy.system.entity.User; import lombok.extern.slf4j.Slf4j; @@ -29,8 +27,10 @@ import org.springframework.transaction.annotation.Transactional; import java.math.BigDecimal; -import java.text.SimpleDateFormat; -import java.util.*; +import java.util.ArrayList; +import java.util.Date; +import java.util.Iterator; +import java.util.List; /** * 绉诲姩绔湇鍔℃牳蹇冪被 @@ -98,6 +98,8 @@ @Autowired private LocOwnerService locOwnerService; + @Autowired + private PlaService plaService; @@ -1198,4 +1200,51 @@ } return R.ok(); } + + @Override + public void plaPakin(String locNo, String batch, String packageNo) { + Pla pla = plaService.selectByBatchAndPackageNo(batch, packageNo); + if("宸插叆搴�".equals(pla.getStatus())){ + throw new CoolException("璇ョ墿鏂欏凡鍏ュ簱"); + } + pla.setStatus("宸插叆搴�"); + pla.setModifyTime(new Date()); + plaService.updateById(pla); + } + + @Override + @Transactional + public void plaPakout(String locNo, String batch, String packageNo, String orderNo, String orderDetlId, String wrkNo, Double anfme) { + Pla pla = plaService.selectByBatchAndPackageNo(batch, packageNo); + //Order order = orderService.selectByNo(orderNo); + OrderDetl orderDetl = orderDetlService.selectById(orderDetlId); + ManPakOut manPakOut = manPakOutService.selectById(wrkNo); + + //鏇存柊鎷h揣鍗曚俊鎭� + if(manPakOut.getCount() + anfme > manPakOut.getAnfme()){ + throw new CoolException("鎷h揣閲嶉噺澶т簬鎷h揣鍗曟墍闇�鎷h揣閲嶉噺锛岃閲嶆柊鍒嗛厤鎷h揣閲嶉噺"); + } + manPakOut.setCount(manPakOut.getCount() + anfme); + if (manPakOut.getAnfme().equals(manPakOut.getCount())){ + manPakOut.setStatus(1); + manPakOutService.updateById(manPakOut); + } + + //鏇存柊鍗曟嵁鏄庣粏 + orderDetl.setQty(orderDetl.getQty() + anfme); + orderDetlService.updateById(orderDetl); + + //鏇存柊鍗曟嵁淇℃伅 + orderService.checkComplete(orderNo); + + //鏇存柊pla鏄庣粏 + pla.setWeightAnfme(pla.getWeightAnfme() - anfme); + if(pla.getWeightAnfme() <= 0){ + pla.setStatus("鍏ㄩ儴鍑哄簱"); + }else { + pla.setStatus("閮ㄥ垎鍑哄簱"); + } + plaService.updateById(pla); + + } } diff --git a/src/main/java/com/zy/asrs/service/impl/OrderDetlServiceImpl.java b/src/main/java/com/zy/asrs/service/impl/OrderDetlServiceImpl.java index 46ff52b..2eeec3b 100644 --- a/src/main/java/com/zy/asrs/service/impl/OrderDetlServiceImpl.java +++ b/src/main/java/com/zy/asrs/service/impl/OrderDetlServiceImpl.java @@ -2,11 +2,11 @@ import com.baomidou.mybatisplus.mapper.EntityWrapper; import com.baomidou.mybatisplus.plugins.Page; -import com.core.common.Cools; -import com.zy.asrs.mapper.OrderDetlMapper; -import com.zy.asrs.entity.OrderDetl; -import com.zy.asrs.service.OrderDetlService; import com.baomidou.mybatisplus.service.impl.ServiceImpl; +import com.core.common.Cools; +import com.zy.asrs.entity.OrderDetl; +import com.zy.asrs.mapper.OrderDetlMapper; +import com.zy.asrs.service.OrderDetlService; import org.springframework.stereotype.Service; import java.util.List; @@ -21,6 +21,8 @@ @Override public Page<OrderDetl> getPakoutPage(Page<OrderDetl> page) { + List<OrderDetl> pakoutPage = baseMapper.getPakoutPage(page.getCondition()); + System.out.println(pakoutPage); page.setRecords(baseMapper.getPakoutPage(page.getCondition())); page.setTotal(baseMapper.getPakoutPageCount(page.getCondition())); return page; diff --git a/src/main/java/com/zy/asrs/service/impl/PlaQtyServiceImpl.java b/src/main/java/com/zy/asrs/service/impl/PlaQtyServiceImpl.java new file mode 100644 index 0000000..2d7faca --- /dev/null +++ b/src/main/java/com/zy/asrs/service/impl/PlaQtyServiceImpl.java @@ -0,0 +1,12 @@ +package com.zy.asrs.service.impl; + +import com.baomidou.mybatisplus.service.impl.ServiceImpl; +import com.zy.asrs.entity.PlaQty; +import com.zy.asrs.mapper.PlaQtyMapper; +import com.zy.asrs.service.PlaQtyService; +import org.springframework.stereotype.Service; + +@Service("plaQtyService") +public class PlaQtyServiceImpl extends ServiceImpl<PlaQtyMapper, PlaQty> implements PlaQtyService { + +} diff --git a/src/main/java/com/zy/asrs/service/impl/PlaServiceImpl.java b/src/main/java/com/zy/asrs/service/impl/PlaServiceImpl.java index 84df296..81a1491 100644 --- a/src/main/java/com/zy/asrs/service/impl/PlaServiceImpl.java +++ b/src/main/java/com/zy/asrs/service/impl/PlaServiceImpl.java @@ -1,12 +1,87 @@ package com.zy.asrs.service.impl; +import com.baomidou.mybatisplus.mapper.EntityWrapper; +import com.baomidou.mybatisplus.mapper.Wrapper; import com.baomidou.mybatisplus.service.impl.ServiceImpl; +import com.core.common.Cools; +import com.zy.asrs.entity.OrderDetl; import com.zy.asrs.entity.Pla; +import com.zy.asrs.entity.PlaQty; import com.zy.asrs.mapper.PlaMapper; +import com.zy.asrs.service.PlaQtyService; import com.zy.asrs.service.PlaService; +import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Service; +import org.springframework.transaction.annotation.Transactional; + +import java.util.Date; +import java.util.List; @Service("plaService") public class PlaServiceImpl extends ServiceImpl<PlaMapper, Pla> implements PlaService { + @Autowired + private PlaQtyService plaQtyService; + public Pla selectByBatchAndPackageNo(String batch, String packageNo) { + return this.selectOne(new EntityWrapper<Pla>().eq("batch",batch).eq("package_no",packageNo)); + } + + @Override + @Transactional + public void queryStock(OrderDetl orderDetl, List<PlaQty> plaQties) { + + //绛涢�夋潯浠� 鎵瑰彿銆佸寘濂姐�佺啍鐐广�佺啍鎸囥�侀粍搴︺�佷笉閫忔槑搴� + Wrapper<Pla> wrapper = new EntityWrapper<Pla>(); + if(!Cools.isEmpty(orderDetl.getBatch())){ + wrapper.eq("batch",orderDetl.getBatch()); + } + if(!Cools.isEmpty(orderDetl.getBrand())){ + wrapper.eq("package_no",orderDetl.getBrand()); + } + wrapper.eq("status","宸插叆搴�"); + wrapper.ge("finger_melting", orderDetl.getFingerMeltingMin()).le("finger_melting", orderDetl.getFingerMeltingMax()); + wrapper.ge("fusing_point", orderDetl.getFusingPointMin()).le("fusing_point", orderDetl.getFusingPointMax()); + wrapper.ge("yellowness", orderDetl.getYellownessMin()).le("yellowness", orderDetl.getYellownessMax()); + wrapper.ge("opacity", orderDetl.getOpacityMin()).le("opacity", orderDetl.getOpacityMax()); + wrapper.orderBy("pakin_time"); + + List<Pla> plas = this.selectList(wrapper); + //鎬诲叡鐨勫嚭搴撶殑鏁伴噺(鎬昏鍑哄簱鏁伴噺-浣滀笟鏁伴噺) + if(Cools.isEmpty(orderDetl.getWorkQty())){ + orderDetl.setWorkQty(0.0); + } + Double anfme = orderDetl.getAnfme() - orderDetl.getWorkQty(); + + for (Pla pla : plas){ + //搴撳瓨鏁伴噺(鍓╀綑閲嶉噺-搴撳瓨浣滀笟鏁伴噺) + Double weightAnfme = pla.getWeightAnfme() - pla.getQtyAnfme(); + if(weightAnfme <= 0){ + continue; + } + //闇�瑕佸噺鍘绘娆″嚭搴撻瑙堝叾浠栬鍗曢渶鍑哄簱鐨勬暟閲� + for (PlaQty plaQty : plaQties){ + if(Cools.eq(plaQty.getBatch(),pla.getBatch()) && Cools.eq(plaQty.getPackageNo(),pla.getPackageNo())){ + weightAnfme -= plaQty.getQtyAnfme(); + } + } + + if(weightAnfme > anfme){ + //濡傛灉璇ユ壒娆″寘鍙峰墿浣欓噸閲忓ぇ浜庤鍗曟槑缁嗘暟閲忥紝鍒欒繑鍥瀙laQties + PlaQty plaQty = new PlaQty(pla.getBatch(),pla.getPackageNo(),orderDetl.getId(),orderDetl.getOrderId(),orderDetl.getOrderNo(),anfme,pla.getLocNo(),new Date()); + anfme = 0.0; + plaQties.add(plaQty); + break; + }else { + PlaQty plaQty = new PlaQty(pla.getBatch(),pla.getPackageNo(),orderDetl.getId(),orderDetl.getOrderId(),orderDetl.getOrderNo(),weightAnfme,pla.getLocNo(),new Date()); + anfme -= weightAnfme; + plaQties.add(plaQty); + } + } + + if(anfme > 0){ + PlaQty plaQty = new PlaQty(orderDetl.getBatch(),orderDetl.getBrand(),orderDetl.getId(),orderDetl.getOrderId(),orderDetl.getOrderNo(),anfme,null,new Date()); + plaQties.add(plaQty); + } + + } } diff --git a/src/main/resources/mapper/OrderDetlMapper.xml b/src/main/resources/mapper/OrderDetlMapper.xml index 72a0ebd..07d0788 100644 --- a/src/main/resources/mapper/OrderDetlMapper.xml +++ b/src/main/resources/mapper/OrderDetlMapper.xml @@ -48,6 +48,14 @@ <result column="owner" property="owner" /> <result column="payment" property="payment" /> <result column="uuid" property="uuid" /> + <result column="finger_melting_min" property="fingerMeltingMin" /> + <result column="finger_melting_max" property="fingerMeltingMax" /> + <result column="fusing_point_min" property="fusingPointMin" /> + <result column="fusing_point_max" property="fusingPointMax" /> + <result column="yellowness_min" property="yellownessMin" /> + <result column="yellowness_max" property="yellownessMax" /> + <result column="opacity_min" property="opacityMin" /> + <result column="opacity_max" property="opacityMax" /> </resultMap> diff --git a/src/main/webapp/static/js/configType/configType.js b/src/main/webapp/static/js/configType/configType.js new file mode 100644 index 0000000..f6afb15 --- /dev/null +++ b/src/main/webapp/static/js/configType/configType.js @@ -0,0 +1,387 @@ +var pageCurr; +var roleId; +var powerTreeData; + +layui.use(['table','laydate', 'form'], function(){ + var table = layui.table; + var $ = layui.jquery; + var layer = layui.layer; + var layDate = layui.laydate; + var form = layui.form; + + // 鏁版嵁娓叉煋 + tableIns = table.render({ + elem: '#configType', + headers: {token: localStorage.getItem('token')}, + url: baseUrl+'/cinfigType/list/auth', + page: true, + limit: 16, + limits: [16, 30, 50, 100, 200, 500], + toolbar: '#toolbar', + cellMinWidth: 50, + cols: [[ + {type: 'checkbox', fixed: 'left'} + ,{field: 'id', title: 'ID', sort: true,align: 'center', fixed: 'left', width: 80} + ,{field: 'type', align: 'center',title: '绫诲瀷'} + ,{field: 'value', align: 'center',title: '鍊�'} + ,{fixed: 'right', title:'鎿嶄綔', align: 'center', toolbar: '#operate', width:150} + ]], + request: { + pageName: 'curr', + pageSize: 'limit' + }, + parseData: function (res) { + return { + 'code': res.code, + 'msg': res.msg, + 'count': res.data.total, + 'data': res.data.records + } + }, + response: { + statusCode: 200 + }, + done: function(res, curr, count) { + if (res.code === 403) { + top.location.href = baseUrl+"/"; + } + pageCurr=curr; + limit(); + } + }); + + // 鐩戝惉鎺掑簭浜嬩欢 + table.on('sort(role)', function (obj) { + var searchData = {}; + $.each($('#search-box [name]').serializeArray(), function() { + searchData[this.name] = this.value; + }); + searchData['orderByField'] = obj.field; + searchData['orderByType'] = obj.type; + tableIns.reload({ + where: searchData, + page: { + curr: 1 + }, + done: function (res, curr, count) { + if (res.code === 403) { + top.location.href = baseUrl+"/"; + } + pageCurr=curr; + limit(); + } + }); + }); + + // 鐩戝惉澶村伐鍏锋爮浜嬩欢 + table.on('toolbar(configType)', function (obj) { + var checkStatus = table.checkStatus(obj.config.id); + switch(obj.event) { + case 'addData': + layer.open({ + type: 2, + title: '鏂板', + maxmin: true, + area: ['800px', top.detailHeight], + shadeClose: false, + content: 'configTypeAdd.html', + success: function(layero, index){ + clearFormVal(layer.getChildFrame('#detail', index)); + layer.iframeAuto(index);layer.style(index, {top: (($(window).height()-layer.getChildFrame('#data-detail', index).height())/3)+"px"}); + } + }); + break; + case 'refreshData': + tableIns.reload({ + page: { + curr: pageCurr + } + }); + limit(); + break; + case 'deleteData': + var data = checkStatus.data; + var ids=[]; + data.map(function (track) { + ids.push(track.id); + }); + if (ids.length === 0){ + layer.msg('璇烽�夋嫨鏁版嵁'); + } else { + layer.confirm('纭畾鍒犻櫎'+(ids.length===1?'姝�':ids.length)+'鏉℃暟鎹悧', function(){ + $.ajax({ + url: baseUrl+"/role/delete/auth", + headers: {'token': localStorage.getItem('token')}, + data: {ids: ids}, + method: 'POST', + traditional:true, + success: function (res) { + if (res.code === 200){ + layer.closeAll(); + tableReload(false); + } else if (res.code === 403){ + top.location.href = baseUrl+"/"; + } else { + layer.msg(res.msg) + } + } + }) + }); + } + break; + case 'exportData': + layer.confirm('纭畾瀵煎嚭Excel鍚�', {shadeClose: true}, function(){ + var titles=[]; + var fields=[]; + obj.config.cols[0].map(function (col) { + if (col.type === 'normal' && col.hide === false && col.toolbar == null) { + titles.push(col.title); + fields.push(col.field); + } + }); + var exportData = {}; + $.each($('#search-box [name]').serializeArray(), function() { + exportData[this.name] = this.value; + }); + var param = { + 'role': exportData, + 'fields': fields + }; + $.ajax({ + url: baseUrl+"/role/export/auth", + headers: {'token': localStorage.getItem('token')}, + data: JSON.stringify(param), + dataType:'json', + contentType:'application/json;charset=UTF-8', + method: 'POST', + success: function (res) { + layer.closeAll(); + if (res.code === 200) { + table.exportFile(titles,res.data,'xls'); + } else if (res.code === 403) { + top.location.href = baseUrl+"/"; + } else { + layer.msg(res.msg) + } + } + }); + }); + break; + } + }); + + // 鐩戝惉琛屽伐鍏蜂簨浠� + table.on('tool(role)', function(obj){ + var data = obj.data; + switch (obj.event) { + // 璇︽儏 + case 'detail': + layer.open({ + type: 2, + title: '璇︽儏', + maxmin: true, + area: [top.detailWidth, top.detailHeight], + shadeClose: false, + content: 'role_detail.html', + success: function(layero, index){ + setFormVal(layer.getChildFrame('#detail', index), data, true); + top.convertDisabled(layer.getChildFrame('#data-detail :input', index), true); + layer.getChildFrame('#data-detail-submit,#prompt', index).hide(); + layer.iframeAuto(index);layer.style(index, {top: (($(window).height()-layer.getChildFrame('#data-detail', index).height())/3)+"px"}); + layero.find('iframe')[0].contentWindow.layui.form.render('select'); + } + }); + break; + // 缂栬緫 + case 'edit': + layer.open({ + type: 2, + title: '淇敼', + maxmin: true, + area: [top.detailWidth, top.detailHeight], + shadeClose: false, + content: 'role_detail.html', + success: function(layero, index){ + setFormVal(layer.getChildFrame('#detail', index), data, false); + top.convertDisabled(layer.getChildFrame('#data-detail :input', index), false); + layer.iframeAuto(index);layer.style(index, {top: (($(window).height()-layer.getChildFrame('#data-detail', index).height())/3)+"px"}); + layero.find('iframe')[0].contentWindow.layui.form.render('select'); + } + }); + break; + case 'leader': + var param = top.reObject(data).leader; + if (param === undefined) { + layer.msg("鏃犳暟鎹�"); + } else { + layer.open({ + type: 2, + title: '璇︽儏', + maxmin: true, + area: [top.detailHeight, top.detailWidth], + shadeClose: false, + content: '../role/role_detail.html', + success: function(layero, index){ + $.ajax({ + url: baseUrl+"/role/"+ param +"/auth", + headers: {'token': localStorage.getItem('token')}, + method: 'GET', + success: function (res) { + if (res.code === 200){ + setFormVal(layer.getChildFrame('#detail', index), res.data, true); + top.convertDisabled(layer.getChildFrame('#data-detail :input', index), true); + layer.getChildFrame('#data-detail-submit,#prompt', index).hide(); + layer.iframeAuto(index);layer.style(index, {top: (($(window).height()-layer.getChildFrame('#data-detail', index).height())/3)+"px"}); + layero.find('iframe')[0].contentWindow.layui.form.render('select'); + } else if (res.code === 403){ + parent.location.href = "/"; + }else { + layer.msg(res.msg) + } + } + }) + } + }); + } + break; + case 'power': + roleId = data.id; + layer.open({ + type: 2, + title: data.name + ' 鏉冮檺鍒嗛厤', + maxmin: true, + area: [top.detailWidth/2, '85%'], + shadeClose: false, + content: 'role_power_detail.html', + success: function(layero, index){ + } + }); + break; + } + }); + + // 鏁版嵁淇敼鍔ㄤ綔 + form.on('submit(edit)', function () { + var index = layer.load(1, { + shade: [0.5,'#000'] //0.1閫忔槑搴︾殑鑳屾櫙 + }); + var data = { + type: $('#type').val(), + value: $('#value').val(), + }; + $.ajax({ + url: baseUrl+"/configType/add/auth", + headers: {'token': localStorage.getItem('token')}, + data: top.reObject(data), + method: 'POST', + success: function (res) { + if (res.code === 200){ + parent.layer.closeAll(); + tableReload(true); + $("#data-detail :input").each(function () { + $(this).val(""); + }); + } else if (res.code === 403){ + top.location.href = baseUrl+"/"; + }else { + layer.msg(res.msg) + } + layer.close(index); + } + }) + }); + + // 鎼滅储鏍忔悳绱簨浠� + form.on('submit(search)', function (data) { + pageCurr = 1; + tableReload(false); + }); + + // 鎼滅储鏍忛噸缃簨浠� + form.on('submit(reset)', function (data) { + pageCurr = 1; + clearFormVal($('#search-box')); + tableReload(false); + }); + + // 鏃堕棿閫夋嫨鍣� + + +}); + +// 鍏抽棴鍔ㄤ綔 +$(document).on('click','#data-detail-close', function () { + parent.layer.closeAll(); +}); + +function tableReload(child) { + var searchData = {}; + $.each($('#search-box [name]').serializeArray(), function() { + searchData[this.name] = this.value; + }); + (child ? parent.tableIns : tableIns).reload({ + where: searchData, + page: { + curr: pageCurr + }, + done: function (res, curr, count) { + if (res.code === 403) { + top.location.href = baseUrl+"/"; + } + pageCurr=curr; + if (res.data.length === 0 && count !== 0) { + tableIns.reload({ + where: searchData, + page: { + curr: pageCurr-1 + } + }); + pageCurr -= 1; + } + limit(child); + } + }); +} + +function setFormVal(el, data, showImg) { + for (var val in data) { + var find = el.find(":input[id='" + val + "']"); + find.val(data[val]); + if (showImg){ + var next = find.next(); + if (next.get(0)){ + if (next.get(0).localName === "img") { + find.hide(); + next.attr("src", data[val]); + next.show(); + } + } + } + } +} + +function clearFormVal(el) { + $(':input', el) + .val('') + .removeAttr('checked') + .removeAttr('selected'); +} + +function detailScreen(index) { + var detail = layer.getChildFrame('#data-detail', index); + var height = detail.height()+60; + if (height > ($(window).height()*0.9)) { + height = ($(window).height()*0.9); + } + layer.style(index, { + top: (($(window).height()-height)/3)+"px", + height: height+'px' + }); + $(".layui-layer-shade").remove(); +} + +$('body').keydown(function () { + if (event.keyCode === 13) { + $("#search").click(); + } +}); diff --git a/src/main/webapp/static/js/order/order.js b/src/main/webapp/static/js/order/order.js index b3f59d9..0d267c2 100644 --- a/src/main/webapp/static/js/order/order.js +++ b/src/main/webapp/static/js/order/order.js @@ -190,22 +190,24 @@ cellMinWidth: 100, cols: [[ {type: 'numbers'}, - {field: 'matnr', title: '鍟嗗搧缂栫爜', width: 160}, - {field: 'maktx', title: '鍟嗗搧鍚嶇О', width: 160}, - - {field: 'batch', title: '鎵瑰彿'}, + // {field: 'matnr', title: '鍟嗗搧缂栫爜', width: 160}, + // {field: 'maktx', title: '鍟嗗搧鍚嶇О', width: 160}, + // + // {field: 'batch', title: '鎵瑰彿'}, + {field: 'batch', title: '鎵规'}, + {field: 'brand', title: '鐗屽彿'}, + {field: 'fingerMeltingMin', title: '鏈�灏忕啍鎸�'}, + {field: 'fingerMeltingMax', title: '鏈�澶х啍鎸�'}, + {field: 'fusingPointMin', title: '鏈�灏忕啍鐐�'}, + {field: 'fusingPointMax', title: '鏈�澶х啍鐐�'}, + {field: 'yellownessMin', title: '鏈�灏忛粍搴�'}, + {field: 'yellownessMax', title: '鏈�澶ч粍搴�'}, + {field: 'opacityMin', title: '鏈�灏忎笉閫忔槑搴�'}, + {field: 'opacityMax', title: '鏈�澶т笉閫忔槑搴�'}, {field: 'anfme', title: '鏁伴噺'}, {field: 'workQty', title: '浣滀笟鏁伴噺'}, {field: 'qty', title: '瀹屾垚鏁伴噺', style: 'font-weight: bold'}, - // {field: 'unit', title: '鍗曚綅'}, - // { - // field: 'createTime$', title: '鍒涘缓鏃堕棿', sort: true, templet: function (d) { - // return util.toDateString(d.createTime); - // }, width: 180 - // }, - // {field: 'inQty', title: '宸插叆搴撻噺'}, - // {field: 'color', title: '棰滆壊'}, - // {field: 'specs', title: '瑙勬牸'}, + ]], request: { pageName: 'curr', @@ -260,14 +262,18 @@ let nList = admin.util.deepClone(xxDataList); console.log(nList); for (let xi = 0; xi < nList.length; xi++) { + if(!nList[xi].anfme){ + layer.msg('鏄庣粏鏁伴噺涓嶅悎娉�', {icon: 2}); + return false; + } if (nList[xi].anfme <= 0){ layer.msg('鏄庣粏鏁伴噺涓嶅悎娉�', {icon: 2}); return false; } - if (nList[xi].batch == null || nList[xi].batch == ""){ - layer.msg('鎵规涓嶅悎娉�', {icon: 2}); - return false; - } + // if (nList[xi].batch == null || nList[xi].batch == ""){ + // layer.msg('鎵规涓嶅悎娉�', {icon: 2}); + // return false; + // } if (nList[xi].anfme < nList[xi].workQty){ layer.msg('鏁伴噺涓嶈兘灏忎簬宸蹭綔涓氭暟閲�', {icon: 2}); return false; @@ -312,14 +318,24 @@ cellMinWidth: 100, cols: [[ {type: 'numbers', title: '#'}, - {field: 'matnr', title: '鍟嗗搧缂栫爜', width: 160}, - {field: 'maktx', title: '鍟嗗搧鍚嶇О', width: 200}, - {field: 'specs', title: '瑙勬牸'}, + // {field: 'matnr', title: '鍟嗗搧缂栫爜', width: 160}, + // {field: 'maktx', title: '鍟嗗搧鍚嶇О', width: 200}, + // {field: 'specs', title: '瑙勬牸'}, {field: 'batch', title: '鎵规', edit: true}, - {field: 'anfme', title: '鏁伴噺(淇敼)', style: 'color: blue;font-weight: bold', edit: true, minWidth: 110, width: 110}, + {field: 'brand', title: '鐗屽彿', edit: true}, + {field: 'fingerMeltingMin', title: '鏈�灏忕啍鎸�', edit: true}, + {field: 'fingerMeltingMax', title: '鏈�澶х啍鎸�', edit: true}, + {field: 'fusingPointMin', title: '鏈�灏忕啍鐐�', edit: true}, + {field: 'fusingPointMax', title: '鏈�澶х啍鐐�', edit: true}, + {field: 'yellownessMin', title: '鏈�灏忛粍搴�', edit: true}, + {field: 'yellownessMax', title: '鏈�澶ч粍搴�', edit: true}, + {field: 'opacityMin', title: '鏈�灏忎笉閫忔槑搴�', edit: true}, + {field: 'opacityMax', title: '鏈�澶т笉閫忔槑搴�', edit: true}, + + {field: 'anfme', title: '閲嶉噺(淇敼)', style: 'color: blue;font-weight: bold', edit: true, minWidth: 110, width: 110}, // {field: 'payment', title: '璐х墿鐘舵��',align: 'center', templet: '#payment'}, - {field: 'qty', title: '浣滀笟鏁伴噺', minWidth: 100, width: 100}, + {field: 'qty', title: '浣滀笟閲嶉噺', minWidth: 100, width: 100}, // {field: 'unit', title: '鍗曚綅', width: 80}, {field: 'memo', title: '澶囨敞' , edit: true}, {align: 'center', title: '鎿嶄綔', toolbar: '#formSSXMTableBar', minWidth: 80, width: 80, fixed: 'right'} @@ -430,6 +446,9 @@ // 鏄剧ず娣诲姞鏄庣粏琛ㄥ崟寮圭獥 function showEditModel2(exp) { + xxDataList.push({}); + insTbSSXM.reload({data: xxDataList, page: {curr: 1}}); + return; admin.open({ type: 1, offset: '150px', diff --git a/src/main/webapp/static/js/order/out.js b/src/main/webapp/static/js/order/out.js index 21099b0..6c3bd2e 100644 --- a/src/main/webapp/static/js/order/out.js +++ b/src/main/webapp/static/js/order/out.js @@ -30,15 +30,23 @@ height: 'full-120', where: {order_id: 9999999999}, cols: [[ - {type: 'checkbox'} - ,{type: 'numbers', title: '#'} - ,{field: 'orderNo', align: 'center',title: '鍗曟嵁缂栧彿', templet: '#orderNoTpl', width: 160} - ,{field: 'matnr', align: 'center',title: '鍟嗗搧缂栫爜', width: 160} - ,{field: 'maktx', align: 'center',title: '鍟嗗搧鍚嶇О', width: 200} + {type: 'checkbox'}, + {type: 'numbers', title: '#'}, + {field: 'orderNo', align: 'center',title: '鍗曟嵁缂栧彿', templet: '#orderNoTpl'}, + {field: 'fingerMeltingMin', title: '鏈�灏忕啍鎸�'}, + {field: 'fingerMeltingMax', title: '鏈�澶х啍鎸�'}, + {field: 'fusingPointMin', title: '鏈�灏忕啍鐐�'}, + {field: 'fusingPointMax', title: '鏈�澶х啍鐐�'}, + {field: 'yellownessMin', title: '鏈�灏忛粍搴�'}, + {field: 'yellownessMax', title: '鏈�澶ч粍搴�'}, + {field: 'opacityMin', title: '鏈�灏忎笉閫忔槑搴�'}, + {field: 'opacityMax', title: '鏈�澶т笉閫忔槑搴�'}, + // ,{field: 'matnr', align: 'center',title: '鍟嗗搧缂栫爜', width: 160} + // ,{field: 'maktx', align: 'center',title: '鍟嗗搧鍚嶇О', width: 200} ,{field: 'anfme', align: 'center',title: '鎬绘暟閲�', style: 'font-weight: bold'} ,{field: 'enableQty', align: 'center',title: '寰呭嚭鏁伴噺', style: 'font-weight: bold'} - ,{field: 'unit', align: 'center',title: '鍗曚綅', hide: true} - ,{field: 'barcode', align: 'center',title: '鍟嗗搧鏉$爜', hide: true} + // ,{field: 'unit', align: 'center',title: '鍗曚綅', hide: true} + // ,{field: 'barcode', align: 'center',title: '鍟嗗搧鏉$爜', hide: true} ,{fixed: 'right', title:'鎿嶄綔', align: 'center', toolbar: '#operate', width: 160} ]], request: { @@ -144,13 +152,16 @@ cols: [[ // {type: 'checkbox', merge: ['orderNo']}, {field: 'orderNo', title: '鍗曟嵁缂栧彿', merge: true, align: 'center'}, - {field: 'title', title: '鍟嗗搧', merge: true, align: 'center', width: 350}, - {field: 'hostId', title: 'id', align: 'center'}, + {field: 'batch', title: '鎵瑰彿', merge: true, align: 'center'}, + {field: 'packageNo', title: '鍖呭彿', align: 'center'}, + {field: 'orderDetlId', title: 'id', align: 'center',hide:true}, + {field: 'qtyAnfme', title: '鍑哄簱鏁伴噺', align: 'center'}, + {field: 'locNo', title: '搴撲綅鍙�', align: 'center',templet: '#locNoTpl'}, // { title: '鍓╀綑闇�姹傞噺', align: 'center' , width: 120, toolbar: '#checkNeedQty'}, // {field: 'anfme', title: '瀹為檯鏁伴噺', align: 'center', width: 90, style: 'font-weight: bold'}, - { title: '鍑哄簱鏁伴噺', align: 'center',field: 'anfme', width: 90, style: 'font-weight: bold; color: red'}, - {field: 'locNo', title: '璐т綅', align: 'center', width: 100, templet: '#locNoTpl'}, - {field: 'staNos', align: 'center', title: '鍑哄簱绔�', merge: ['locNo'], templet: '#tbBasicTbStaNos'}, + // { title: '鍑哄簱鏁伴噺', align: 'center',field: 'anfme', width: 90, style: 'font-weight: bold; color: red'}, + // {field: 'locNo', title: '璐т綅', align: 'center', width: 100, templet: '#locNoTpl'}, + // {field: 'staNos', align: 'center', title: '鍑哄簱绔�', merge: ['locNo'], templet: '#tbBasicTbStaNos'}, // {type: 'checkbox', merge: ['locNo']}, ]], done: function (res) { diff --git a/src/main/webapp/static/js/picking/picking.js b/src/main/webapp/static/js/picking/picking.js index fbca122..2f1f451 100644 --- a/src/main/webapp/static/js/picking/picking.js +++ b/src/main/webapp/static/js/picking/picking.js @@ -131,8 +131,10 @@ ,{field: 'docNum', align: 'center',title: '鎷h揣鍗曞彿'} ,{field: 'uuid', align: 'center',title: 'uuid'} ,{field: 'locNo', align: 'center',title: '搴撲綅'} - ,{field: 'matnr', align: 'center',title: '鐗╂枡鍙�'} - ,{field: 'maktx', align: 'center',title: '鍟嗗搧鍚嶇О'} + ,{field: 'batch', align: 'center',title: '鎵瑰彿'} + ,{field: 'barcode', align: 'center',title: '鍖呭彿'} + // ,{field: 'matnr', align: 'center',title: '鐗╂枡鍙�'} + // ,{field: 'maktx', align: 'center',title: '鍟嗗搧鍚嶇О'} ,{field: 'anfme', align: 'center',title: '鏁伴噺'} ,{field: 'createTime$', align: 'center',title: '鎿嶄綔鏃堕棿'} ,{field: 'count', align: 'center',title: '瀹屾垚鏁�'} @@ -296,9 +298,9 @@ var className = templateDom.attr("class"); if (className === 'template-barcode') { - json.data[i]["barcodeUrl"] = baseUrl + "/ManPakOut/code/auth?type=2¶m=" + (json.data[i].docNum+";"+json.data[i].matnr+";"+json.data[i].batch+";"+json.data[i].anfme+";"+json.data[i].locNo+";"); + json.data[i]["barcodeUrl"] = baseUrl + "/ManPakOut/code/auth?type=2¶m=" + (json.data[i].docNum+";"+json.data[i].matnr+";"+json.data[i].batch+";"+json.data[i].anfme+";"+json.data[i].locNo+";"+json.data[i].barcode+";"+json.data[i].nodeId+";"+json.data[i].wrkNo+";"); } else { - json.data[i]["barcodeUrl"] = baseUrl + "/ManPakOut/code/auth?type=2¶m=" + (json.data[i].docNum+";"+json.data[i].matnr+";"+json.data[i].batch+";"+json.data[i].anfme+";"+json.data[i].locNo+";"); + json.data[i]["barcodeUrl"] = baseUrl + "/ManPakOut/code/auth?type=2¶m=" + (json.data[i].docNum+";"+json.data[i].matnr+";"+json.data[i].batch+";"+json.data[i].anfme+";"+json.data[i].locNo+";"+json.data[i].barcode+";"+json.data[i].nodeId+";"+json.data[i].wrkNo+";"); } } var tpl = templateDom.html(); diff --git a/src/main/webapp/static/js/pla/plaDetl.js b/src/main/webapp/static/js/pla/plaDetl.js index fc9080d..6569d16 100644 --- a/src/main/webapp/static/js/pla/plaDetl.js +++ b/src/main/webapp/static/js/pla/plaDetl.js @@ -25,6 +25,10 @@ ,{field: 'yellowness', align: 'center',title: '榛勫害', hide:true} ,{field: 'opacity', align: 'center',title: '涓嶉�忔槑搴︼紙0-100%锛�', hide:true} ,{field: 'water', align: 'center',title: '姘村垎锛坧pm锛�', hide:true} + ,{field: 'l', align: 'center',title: 'l鍊�', edit: true} + ,{field: 'a', align: 'center',title: 'a鍊�', edit: true} + ,{field: 'b', align: 'center',title: 'b鍊�', edit: true} + ,{field: 'fillIn', align: 'center',title: '濉厖(%)', edit: true} ,{field: 'massState', align: 'center',title: '璐ㄩ噺鐘舵��', hide:true} ,{field: 'problem', align: 'center',title: '璐ㄩ噺闂', hide:true} ,{field: 'stash', align: 'center',title: '浠撳簱', edit:true} diff --git a/src/main/webapp/static/js/pla/productionInfo.js b/src/main/webapp/static/js/pla/productionInfo.js index 0cd7b86..db2fd0a 100644 --- a/src/main/webapp/static/js/pla/productionInfo.js +++ b/src/main/webapp/static/js/pla/productionInfo.js @@ -94,7 +94,7 @@ let dataOld = []; for(var i=0; i<data.length; i++){ if(data[i].LAY_CHECKED){ - if(!data[i].batch){ + if(!data[i].batch || !data[i].packageNo || !data[i].brand || !data[i].weight || !data[i].workshop || !data[i].line || !data[i].packageType || !data[i].zpalletType){ layer.msg("鏈夋湭濉啓瀛楁"); return; } @@ -104,6 +104,10 @@ dataOld.push(data[i]); } } + if(!dataSave || dataSave.length < 1){ + layer.msg("鏈嬀閫夋彁浜ら」锛屾棤娉曟彁浜�"); + return; + } $.ajax({ url: baseUrl+"/pla/add/auth", headers: {'token': localStorage.getItem('token')}, diff --git a/src/main/webapp/static/js/pla/qualityInfo.js b/src/main/webapp/static/js/pla/qualityInfo.js index d79d1a2..f8bcf7c 100644 --- a/src/main/webapp/static/js/pla/qualityInfo.js +++ b/src/main/webapp/static/js/pla/qualityInfo.js @@ -25,6 +25,10 @@ ,{field: 'yellowness', align: 'center',title: '榛勫害', edit: true} ,{field: 'opacity', align: 'center',title: '涓嶉�忔槑搴︼紙0-100%锛�', edit: true} ,{field: 'water', align: 'center',title: '姘村垎锛坧pm锛�', edit: true} + ,{field: 'l', align: 'center',title: 'l鍊�', edit: true} + ,{field: 'a', align: 'center',title: 'a鍊�', edit: true} + ,{field: 'b', align: 'center',title: 'b鍊�', edit: true} + ,{field: 'fillIn', align: 'center',title: '濉厖(%)', edit: true} ,{field: 'massState', align: 'center',title: '璐ㄩ噺鐘舵��', edit: true} ,{field: 'problem', align: 'center',title: '璐ㄩ噺闂', edit: true} ]; diff --git a/src/main/webapp/views/configType/configType.html b/src/main/webapp/views/configType/configType.html new file mode 100644 index 0000000..c4723d9 --- /dev/null +++ b/src/main/webapp/views/configType/configType.html @@ -0,0 +1,59 @@ +<!DOCTYPE html> +<html lang="en"> +<head> + <meta charset="utf-8"> + <title></title> + <meta name="renderer" content="webkit"> + <meta http-equiv="X-UA-Compatible" content="IE=edge,chrome=1"> + <meta name="viewport" content="width=device-width, initial-scale=1, maximum-scale=1"> + <link rel="stylesheet" href="../../static/layui/css/layui.css" media="all"> + <link rel="stylesheet" href="../../static/css/cool.css" media="all"> + <link rel="stylesheet" href="../../static/css/common.css" media="all"> +</head> +<body> + +<!-- 鎼滅储鏍� --> +<div id="search-box" class="layui-form layui-card-header"> + <div class="layui-inline" > + <div class="layui-input-inline cool-auto-complete"> + <input class="layui-input" type="text" name="type" placeholder="绫诲瀷" autocomplete="off"> + <div class="cool-auto-complete-window"> + <input class="cool-auto-complete-window-input" data-key="roleQueryByleader" onkeyup="autoLoad(this.getAttribute('data-key'))"> + <select class="cool-auto-complete-window-select" data-key="roleQueryByleaderSelect" onchange="confirmed(this.getAttribute('data-key'))" multiple="multiple"> + </select> + </div> + </div> + </div> + <!-- 寰呮坊鍔� --> + <div id="data-search-btn" class="layui-btn-container layui-form-item"> + <button id="search" class="layui-btn layui-btn-primary layui-btn-radius" lay-submit lay-filter="search">鎼滅储</button> + <button id="reset" class="layui-btn layui-btn-primary layui-btn-radius" lay-submit lay-filter="reset">閲嶇疆</button> + </div> +</div> + +<!-- 琛ㄦ牸 --> +<table class="layui-hide" id="configType" lay-filter="configType"></table> +<script type="text/html" id="toolbar"> + <div class="layui-btn-container"> + <button class="layui-btn layui-btn-sm" id="btn-add" lay-event="addData">鏂板</button> + <button class="layui-btn layui-btn-sm" id="btn-delete" lay-event="deleteData">鍒犻櫎</button> + <button class="layui-btn layui-btn-primary layui-btn-sm" id="btn-export" lay-event="exportData">瀵煎嚭</button> + </div> +</script> + +<script type="text/html" id="operate"> + <a class="layui-btn layui-btn-xs layui-btn-warm" lay-event="power">鍒犻櫎</a> + <a class="layui-btn layui-btn-xs btn-edit" lay-event="edit">缂栬緫</a> +</script> + +<script type="text/javascript" src="../../static/js/jquery/jquery-3.3.1.min.js"></script> +<script type="text/javascript" src="../../static/layui/layui.js" charset="utf-8"></script> +<script type="text/javascript" src="../../static/js/common.js" charset="utf-8"></script> +<script type="text/javascript" src="../../static/js/cool.js" charset="utf-8"></script> +<script type="text/javascript" src="../../static/js/configType/configType.js" charset="utf-8"></script> + +<iframe id="detail-iframe" scrolling="auto" style="display:none;"></iframe> + +</body> +</html> + diff --git a/src/main/webapp/views/configType/configTypeAdd.html b/src/main/webapp/views/configType/configTypeAdd.html new file mode 100644 index 0000000..d7ee719 --- /dev/null +++ b/src/main/webapp/views/configType/configTypeAdd.html @@ -0,0 +1,50 @@ +<!DOCTYPE html> +<html lang="en"> +<head> + <meta charset="utf-8"> + <title></title> + <meta name="renderer" content="webkit"> + <meta http-equiv="X-UA-Compatible" content="IE=edge,chrome=1"> + <meta name="viewport" content="width=device-width, initial-scale=1, maximum-scale=1"> + <link rel="stylesheet" href="../../static/layui/css/layui.css" media="all"> + <link rel="stylesheet" href="../../static/css/cool.css" media="all"> + <link rel="stylesheet" href="../../static/css/common.css" media="all"> +</head> +<body> + +<!-- 璇︽儏 --> +<div id="data-detail" class="layer_self_wrap"> + <form id="detail" class="layui-form"> + <div class="layui-inline" style="width:45%;"> + <label class="layui-form-label"><span class="not-null">*</span>绫汇��銆�鍨嬶細</label> + <div class="layui-input-inline"> + <input id="type" class="layui-input" type="text" lay-verify="required" > + </div> + </div> + <div class="layui-inline" style="width:45%;"> + <label class="layui-form-label"><span class="not-null">*</span>鍊硷細</label> + <div class="layui-input-inline"> + <input id="value" class="layui-input" type="text" lay-verify="required" > + </div> + </div> + + <hr class="layui-bg-gray"> + + <div id="data-detail-btn" class="layui-btn-container layui-form-item"> + <div id="data-detail-submit" type="button" class="layui-btn layui-btn-normal" lay-submit lay-filter="edit">淇濆瓨</div> + <div id="data-detail-close" type="button" class="layui-btn" lay-submit lay-filter="close">鍏抽棴</div> + </div> + +<!-- <div id="prompt">--> +<!-- 娓╅Θ鎻愮ず锛氳浠旂粏濉啓鐩稿叧淇℃伅锛�<span class="extrude"><span class="not-null">*</span> 涓哄繀濉�夐」銆�</span>--> +<!-- </div>--> + </form> +</div> +</body> +<script type="text/javascript" src="../../static/js/jquery/jquery-3.3.1.min.js"></script> +<script type="text/javascript" src="../../static/layui/layui.js" charset="utf-8"></script> +<script type="text/javascript" src="../../static/js/common.js" charset="utf-8"></script> +<script type="text/javascript" src="../../static/js/cool.js" charset="utf-8"></script> +<script type="text/javascript" src="../../static/js/configType/configType.js" charset="utf-8"></script> +</html> + diff --git a/src/main/webapp/views/order/order.html b/src/main/webapp/views/order/order.html index 7644d67..54446b4 100644 --- a/src/main/webapp/views/order/order.html +++ b/src/main/webapp/views/order/order.html @@ -178,7 +178,7 @@ <form id="matEditForm" lay-filter="matEditForm" class="layui-form model-form"> <input name="experimentId" type="hidden"/> <div class="layui-form-item" style="float: left"> - <label class="layui-form-label">鐗╂枡 - 澶氶��</label> + <label class="layui-form-label">鎵瑰彿 - 澶氶��</label> <div class="layui-input-block"> <div id="mat" name="mat"> </div> diff --git a/src/main/webapp/views/order/out.html b/src/main/webapp/views/order/out.html index 4e7abfe..3ee53da 100644 --- a/src/main/webapp/views/order/out.html +++ b/src/main/webapp/views/order/out.html @@ -196,7 +196,7 @@ <script type="text/html" id="locNoTpl"> <span name="locNo" - {{# if( d.lack === false){ }} + {{# if( d.locNo){ }} class="layui-badge layui-badge-green" >{{d.locNo}}</span> {{# } else { }} class="layui-badge layui-badge-red" >搴撳瓨涓嶈冻</span> diff --git a/src/main/webapp/views/picking/picking.html b/src/main/webapp/views/picking/picking.html index 32f447f..c9a5cef 100644 --- a/src/main/webapp/views/picking/picking.html +++ b/src/main/webapp/views/picking/picking.html @@ -163,10 +163,10 @@ <table width="100%" style="border:0;border-bottom:#0C0C0C solid 2px; margin-bottom:20px;padding:0;overflow: hidden;font-size: xx-small;table-layout: fixed;"> <tr style="height: 25px;font-size: 15px;"> <td align="left" scope="col" colspan="1" style="width: 100px;"> - 鏂欏彿: + <!-- 鏂欏彿: -->鎵瑰彿 </td> <td> - {{this.matnr}} + <!-- {{this.matnr}} -->{{this.batch}} </td> <td align="left" scope="col" colspan="1" rowspan="4"> <img class="template-code template-qrcode" src="{{this.barcodeUrl}}" width="100px"> @@ -174,10 +174,10 @@ </tr> <tr style="height: 25px;font-size: 15px;"> <td align="left" scope="col" colspan="1" style="width: 100px;"> - 鍟嗗搧鍚�: +<!-- 鍟嗗搧鍚�:-->鍖呭彿 </td> <td> - {{this.maktx}} +<!-- {{this.maktx}}--> {{this.barcode}} </td> </tr> <tr style="height: 25px; font-size: 15px;"> diff --git a/src/main/webapp/views/pla/plaDetl.html b/src/main/webapp/views/pla/plaDetl.html index 98ae191..1c0db59 100644 --- a/src/main/webapp/views/pla/plaDetl.html +++ b/src/main/webapp/views/pla/plaDetl.html @@ -62,7 +62,24 @@ transition: 0.4s; cursor: pointer; } + .function-btn1 { + font-size: 16px; + padding: 1px 1px 1px 1px; + width: 150px; + height: 40px; + border-color: #2b425b; + border-radius: 4px; + border-width: 1px; + background: none; + border-style: solid; + transition: 0.4s; + cursor: pointer; + } .function-btn:hover { + background-color: #2b425b; + color: #fff; + } + .function-btn1:hover { background-color: #2b425b; color: #fff; } @@ -93,6 +110,10 @@ <!-- 鍔熻兘鍖� --> <div class="function-area"> <button id="rework" style="alignment: right" class="function-btn">閲嶅仛</button> + <button id="updateZpallet" style="alignment: right" class="function-btn1">鎹㈠寘瑁�/鎵樼洏/缂犺啘</button> | + <button id="sellout" style="alignment: right" class="function-btn">鍗栧嚭</button> + <button id="pickup" style="alignment: right" class="function-btn">鍙栬揣</button> | + <button id="returned" style="alignment: right" class="function-btn">閫�鍥�</button> </div> <!-- 琛� --> -- Gitblit v1.9.1