src/main/java/com/zy/asrs/controller/ManPakOutController.java | ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史 | |
src/main/java/com/zy/asrs/controller/OutController.java | ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史 | |
src/main/java/com/zy/asrs/service/impl/OpenServiceImpl.java | ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史 | |
src/main/resources/mapper/ManLocDetlMapper.xml | ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史 |
src/main/java/com/zy/asrs/controller/ManPakOutController.java
@@ -5,13 +5,14 @@ import com.baomidou.mybatisplus.mapper.Wrapper; 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.core.common.SpringUtils; import com.core.common.*; import com.zy.asrs.entity.*; import com.zy.asrs.entity.param.OrderDomainParam; import com.zy.asrs.service.*; import com.zy.common.CodeRes; import com.zy.common.config.AdminInterceptor; import com.zy.common.utils.BarcodeUtils; import com.zy.common.utils.QrCode; import com.zy.common.web.BaseController; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.transaction.annotation.Transactional; @@ -20,6 +21,10 @@ import org.springframework.web.bind.annotation.RequestParam; import org.springframework.web.bind.annotation.RestController; import javax.imageio.ImageIO; import javax.servlet.http.HttpServletResponse; import java.awt.image.BufferedImage; import java.io.IOException; import java.util.ArrayList; import java.util.Date; import java.util.List; @@ -101,4 +106,39 @@ } return R.ok(orders1); } @RequestMapping(value = "/ManPakOut/print/auth") @ManagerAuth(memo = "订单编码打印") public R manPakOutPrint(@RequestParam(value = "param[]") String[] param) { if(Cools.isEmpty(param)) { return R.parse(CodeRes.EMPTY); } List<ManPakOut> res = new ArrayList<>(); for (String orderNo : param){ res = manPakOutService.selectList(new EntityWrapper<ManPakOut>().eq("doc_num", orderNo)); } return R.ok().add(res); } @RequestMapping(value = "/ManPakOut/code/auth") // @ManagerAuth(memo = "物料编码条形码获取(type:1(条形码);2(二维码)") public R manPakOutCodeBarcode(@RequestParam(defaultValue = "2") Integer type , @RequestParam String param , HttpServletResponse response) throws Exception { AdminInterceptor.cors(response); if (Cools.isEmpty(param)){ return R.parse(BaseRes.EMPTY); } BufferedImage img; if (type == 1) { img = BarcodeUtils.encode(param); } else { img = QrCode.createImg(param); } if (!ImageIO.write(img, "jpg", response.getOutputStream())) { throw new IOException("Could not write an image of format jpg"); } response.getOutputStream().flush(); response.getOutputStream().close(); return R.ok(); } } src/main/java/com/zy/asrs/controller/OutController.java
@@ -159,8 +159,10 @@ List<String> matnrs=new ArrayList<>(); for (int i = 0; i < locDtos.size(); i++) { LocDto locDto = locDtos.get(locDtos.size() - 1 - i); if (locDto.getLocNo() == null || locDto.getManu().equals("立库")) { if (locDto.getLocNo() == null) { is[i][0] = 1; } else if (locDto.getManu().equals("立库")){ is[i][0] = 2; } else { is[i][0] = 0; } @@ -168,12 +170,17 @@ } List<LocDto> locDtos1=new ArrayList<>(); for (int[] i : is) { if (i[0] == 1) { if (i[0] == 2) { if (!matnrs.contains(locDtos.get(i[1]).getMatnr())){ matnrs.add(locDtos.get(i[1]).getMatnr()); } locDtos1.add(locDtos.get(i[1])); locDtos.remove(i[1]); }else if (i[0]==1){ LocDto locDto = locDtos.get(i[1]); locDto.setLocNo("库存不足"); locDtos.remove(i[1]); locDtos.add(locDto); } } for (String matnr:matnrs){ @@ -181,7 +188,7 @@ int b = 0; for (int i = 0; i < locDtos1.size(); i++){ if (locDtos1.get(i).getMatnr().equals(matnr)){ if (a.equals(0)){ if (a.equals(0.0)){ b=i; } a=a+locDtos1.get(i).getAnfme(); @@ -207,7 +214,7 @@ } for (LocDto locDto:locDtos){ ManLocDetl manLocDetl = manLocDetlService.selectItem(locDto.getLocNo(), locDto.getMatnr(), locDto.getBatch()); if (!(locDto.getAnfme()>manLocDetl.getAnfme())) { if (!Cools.isEmpty(manLocDetl) && !(locDto.getAnfme()>=manLocDetl.getAnfme())) { manLocDetl.setStatus(0); if (manLocDetlService.update(manLocDetl, new EntityWrapper<ManLocDetl>().eq("uuid", manLocDetl.getUuid()))) { if (addPakOUT(locDto).equals(R.ok())) { @@ -232,6 +239,13 @@ return R.error("添加拣货明细失败,请联系管理员"+locDto.getOrderNo()+locDto.getMatnr()); } } }else if (locDto.getLocNo().equals("立库")){ addPakOUT(locDto).equals(R.ok()); } } for (LocDto locDto:locDtos){ if (locDto.getLocNo().equals("库存不足")){ addPakOUT(locDto).equals(R.ok()); } } return R.ok(); @@ -246,6 +260,7 @@ manPakOut.setMatnr(locDto.getMatnr()); manPakOut.setMaktx(locDto.getMaktx()); manPakOut.setDocNum(locDto.getOrderNo()); manPakOut.setCount(0); manPakOut.setStatus(0); manPakOut.setCreateTime(new Date()); manPakOut.setBatch(locDto.getBatch()); src/main/java/com/zy/asrs/service/impl/OpenServiceImpl.java
@@ -60,6 +60,8 @@ private NodeService nodeService; @Autowired private ManLocDetlService manLocDetlService; @Autowired private ManPakOutService manPakOutService; @Override @Transactional @@ -657,8 +659,12 @@ if (Cools.isEmpty(orderDetl)) { return R.error("单据明细有误,请检查"); } if (jsonOrderDetl.getAnfme() > (orderDetl.getAnfme() - orderDetl.getQty())) { return R.error("出库数量大于单据可出数量"); EntityWrapper<ManPakOut> manPakOutEntityWrapper = new EntityWrapper<>(); manPakOutEntityWrapper.eq("loc_no",jsonLocNo); manPakOutEntityWrapper.eq("matnr",jsonOrderDetl.getMatnr()); ManPakOut manPakOut = manPakOutService.selectOne(manPakOutEntityWrapper); //获取拣货单中的对应的订单 if (jsonOrderDetl.getAnfme() > (manPakOut.getAnfme()-manPakOut.getCount())) { //判断工作数量是否大于拣货单剩余可出的数量 return R.error("出库数量大于拣货单剩余可出数量"); } ManLocDetl manLocDetl = manLocDetlService.selectOne(new EntityWrapper<ManLocDetl>() .eq("loc_no", jsonLocNo) src/main/resources/mapper/ManLocDetlMapper.xml
@@ -30,6 +30,7 @@ <result column="update_by" property="updateBy" /> <result column="modi_time" property="modiTime" /> <result column="memo" property="memo" /> <result column="uuid" property="uuid" /> </resultMap> @@ -247,10 +248,21 @@ where loc_no = #{locNo} and matnr = #{matnr} </select> <select id="selectItem0" resultType="com.zy.asrs.entity.ManLocDetl"> <select id="selectItem" resultType="com.zy.asrs.entity.ManLocDetl"> select top 1 * from man_loc_detl where loc_no = #{locNo} and matnr = #{matnr} <if test="batch!=null and batch!='' "> and batch = #{batch} </if> <!-- <choose>--> <!-- <when test="batch != null and batch != ''">--> <!-- and batch = #{batch}--> <!-- </when>--> <!-- <otherwise>--> <!-- and (batch IS NULL OR batch = '')--> <!-- </otherwise>--> <!-- </choose>--> </select> <select id="listByOutPage" resultMap="BaseResultMap">