Merge branch 'master' of http://47.97.1.152:5880/r/wms_saas
 
	
	
	
	
	
	
	
	
	
	
	
	
	
 |  |  | 
 |  |  | import com.baomidou.mybatisplus.mapper.Wrapper; | 
 |  |  | import com.baomidou.mybatisplus.plugins.Page; | 
 |  |  | import com.core.common.DateUtils; | 
 |  |  | import zy.cloud.wms.manager.entity.Pickout; | 
 |  |  | import zy.cloud.wms.manager.entity.PickoutDetl; | 
 |  |  | import zy.cloud.wms.manager.service.PickoutDetlService; | 
 |  |  | import zy.cloud.wms.manager.service.PickoutService; | 
 |  |  | import zy.cloud.wms.manager.entity.*; | 
 |  |  | import zy.cloud.wms.manager.service.*; | 
 |  |  | import com.core.annotations.ManagerAuth; | 
 |  |  | import com.core.common.BaseRes; | 
 |  |  | import com.core.common.Cools; | 
 |  |  | 
 |  |  |     private PickoutService pickoutService; | 
 |  |  |     @Autowired | 
 |  |  |     private PickoutDetlService pickoutDetlService; | 
 |  |  |     @Autowired | 
 |  |  |     private WaveService waveService; | 
 |  |  |     @Autowired | 
 |  |  |     private OrderService orderService; | 
 |  |  |     @Autowired | 
 |  |  |     private WaveDetlService waveDetlService; | 
 |  |  |     @Autowired | 
 |  |  |     private OrderDetlService orderDetlService; | 
 |  |  |  | 
 |  |  |     @RequestMapping(value = "/pickout/{id}/auth") | 
 |  |  |     @ManagerAuth | 
 |  |  | 
 |  |  |         EntityWrapper<Pickout> wrapper = new EntityWrapper<>(); | 
 |  |  |         excludeTrash(param); | 
 |  |  |         convert(param, wrapper); | 
 |  |  |         if (!Cools.isEmpty(orderByField)){wrapper.orderBy(humpToLine(orderByField), "asc".equals(orderByType));} | 
 |  |  | //        if (!Cools.isEmpty(orderByField)){wrapper.orderBy(humpToLine(orderByField), "asc".equals(orderByType));} | 
 |  |  |         wrapper.orderBy("wrk_sts",true); | 
 |  |  |         Page<Pickout> pickoutPage = pickoutService.selectPage(new Page<>(curr, limit), wrapper); | 
 |  |  |  | 
 |  |  |         return R.ok(pickoutPage); | 
 |  |  | 
 |  |  |         return R.ok(); | 
 |  |  |     } | 
 |  |  |  | 
 |  |  |     /** | 
 |  |  |      * 打印完成之后,将'未打印'状态替换为'拣货中' | 
 |  |  |      * @param pickout | 
 |  |  |      * @return | 
 |  |  |      */ | 
 |  |  |     @RequestMapping("/pickout/print/auth") | 
 |  |  |     @ManagerAuth | 
 |  |  |     public R printed(@RequestBody Pickout pickout){ | 
 |  |  |         /** | 
 |  |  |          * 打印完成,向后台更新数据 | 
 |  |  |          */ | 
 |  |  |         Date now = new Date(); | 
 |  |  |         pickout.setPrintTimes(pickout.getPrintTimes() + 1); | 
 |  |  |         pickout.setUpdateTime(now); | 
 |  |  |         pickout.setUpdateBy(getUserId().intValue()); | 
 |  |  |         pickout.setPickStaff(getUserId()); | 
 |  |  |         pickout.setPickStart(now); | 
 |  |  |         pickout.setWrkSts(2L); | 
 |  |  |         pickoutService.update(pickout,new EntityWrapper<Pickout>() | 
 |  |  |                 .eq("id",pickout.getId())); | 
 |  |  |         return R.ok(); | 
 |  |  |     } | 
 |  |  |  | 
 |  |  |     /** | 
 |  |  |      * 点击完成按钮时,将状态从'拣货中'调整至'已完成' | 
 |  |  |      */ | 
 |  |  |     @RequestMapping("/pickout/done/auth") | 
 |  |  |     @ManagerAuth | 
 |  |  |     public R donePickOut(@RequestBody Pickout pickout){ | 
 |  |  |         HashSet<String> orderNos = new HashSet<>(); | 
 |  |  |         /** | 
 |  |  |          * 反写拣货单 | 
 |  |  |          */ | 
 |  |  |         pickout.setWrkSts(3L); | 
 |  |  |         pickout.setPickEnd(new Date()); | 
 |  |  |         pickoutService.update(pickout,new EntityWrapper<Pickout>() | 
 |  |  |                 .eq("id",pickout.getId())); | 
 |  |  |         List<PickoutDetl> pickoutDetls = pickoutDetlService.selectList(new EntityWrapper<PickoutDetl>() | 
 |  |  |                 .eq("head_id", pickout.getId())); | 
 |  |  |         if (Cools.isEmpty(pickoutDetls)) { | 
 |  |  |             return R.error("找不到拣货单明细"); | 
 |  |  |         } | 
 |  |  |         /** | 
 |  |  |          * 反写波次 | 
 |  |  |          */ | 
 |  |  |         Wave wave = waveService.selectOne(new EntityWrapper<Wave>() | 
 |  |  |                 .eq("wave_no", pickout.getWaveNo())); | 
 |  |  |         if (Cools.isEmpty(wave)) { | 
 |  |  |             return R.error("找不到对应波次"); | 
 |  |  |         } | 
 |  |  |         wave.setStatus((short) 2); | 
 |  |  |         waveService.update(wave,new EntityWrapper<Wave>() | 
 |  |  |                 .eq("id",wave.getId())); | 
 |  |  |         List<WaveDetl> waveDetls = waveDetlService.selectList(new EntityWrapper<WaveDetl>() | 
 |  |  |                 .eq("wave_id", wave.getId())); | 
 |  |  |         if (Cools.isEmpty(waveDetls)) { | 
 |  |  |             return R.error("找不到对应波次明细"); | 
 |  |  |         } | 
 |  |  |  | 
 |  |  |         /** | 
 |  |  |          * 反写出库订单 | 
 |  |  |          */ | 
 |  |  |         for (WaveDetl waveDetl : waveDetls) { | 
 |  |  |             String[] split = waveDetl.getOrderNos().split(","); | 
 |  |  |             for (String s : split) { | 
 |  |  |                 orderNos.add(s); | 
 |  |  |             } | 
 |  |  |         } | 
 |  |  |         for (PickoutDetl pickoutDetl : pickoutDetls) { | 
 |  |  |             Double anfme = pickoutDetl.getAnfme(); | 
 |  |  |             String matnr = pickoutDetl.getMatnr(); | 
 |  |  |             List<OrderDetl> orderDetls = orderDetlService.selectOutList(matnr,new ArrayList<String>(orderNos)); | 
 |  |  |  | 
 |  |  |         } | 
 |  |  |  | 
 |  |  |         return R.ok(); | 
 |  |  |     } | 
 |  |  |  | 
 |  |  | } | 
 
 |  |  | 
 |  |  |         EntityWrapper<Wave> wrapper = new EntityWrapper<>(); | 
 |  |  |         excludeTrash(param); | 
 |  |  |         convert(param, wrapper); | 
 |  |  |         if (!Cools.isEmpty(orderByField)){wrapper.orderBy(humpToLine(orderByField), "asc".equals(orderByType));} | 
 |  |  | //        if (!Cools.isEmpty(orderByField)){wrapper.orderBy(humpToLine(orderByField), "asc".equals(orderByType));} | 
 |  |  |         wrapper.orderBy("create_time",false); | 
 |  |  |         return R.ok(waveService.selectPage(new Page<>(curr, limit), wrapper)); | 
 |  |  |     } | 
 |  |  |  | 
 
 |  |  | 
 |  |  |     private SnowflakeIdWorker snowflakeIdWorker; | 
 |  |  |     @Autowired | 
 |  |  |     private OrderService orderService; | 
 |  |  |     @Autowired | 
 |  |  |     private PickoutService pickoutService; | 
 |  |  |  | 
 |  |  |     @Autowired | 
 |  |  |     private ReceiveService receiveService; | 
 |  |  | 
 |  |  |         return workService.stockOutPrint(stockOutParam, getUserId(), getHostId()); | 
 |  |  |     } | 
 |  |  |  | 
 |  |  |     @RequestMapping("/pick/out/print") | 
 |  |  |     @ManagerAuth(memo = "PickOut打印拣货单") | 
 |  |  |     public R pickOutPrint(@RequestBody Pickout pickout){ | 
 |  |  |         return pickoutService.stockOutPrint(pickout,getUserId(), getHostId()); | 
 |  |  |     } | 
 |  |  |  | 
 |  |  |     @RequestMapping("/stock/allot") | 
 |  |  |     @ManagerAuth(memo = "库存调拨") | 
 |  |  |     public R stockAllot() { | 
 
 |  |  | 
 |  |  |     @TableField("wave_no") | 
 |  |  |     private String waveNo; | 
 |  |  |  | 
 |  |  |     @TableField("print_times") | 
 |  |  |     private Integer printTimes; | 
 |  |  |  | 
 |  |  |     @TableField("pick_staff") | 
 |  |  |     private Long pickStaff; | 
 |  |  |  | 
 |  |  |     @TableField("pick_start") | 
 |  |  |     private Date pickStart; | 
 |  |  |  | 
 |  |  |     @TableField("pick_end") | 
 |  |  |     private Date pickEnd; | 
 |  |  |  | 
 |  |  |     public Pickout() {} | 
 |  |  |  | 
 |  |  |  | 
 |  |  | 
 |  |  |             return "未打印"; | 
 |  |  |         } | 
 |  |  |         if (this.wrkSts == 2) { | 
 |  |  |             return "未拣货"; | 
 |  |  |             return "拣货中"; | 
 |  |  |         } | 
 |  |  |         if (this.wrkSts == 3) { | 
 |  |  |             return "开始拣货"; | 
 |  |  |             return "已完成"; | 
 |  |  |         } | 
 |  |  |         if (this.wrkSts == 4) { | 
 |  |  |             return "拣货完成"; | 
 |  |  |         } | 
 |  |  |  | 
 |  |  |         return ""; | 
 |  |  |     } | 
 |  |  |     public Long getId() { | 
 |  |  | 
 |  |  |         return new SimpleDateFormat("yyyy-MM-dd HH:mm:ss").format(this.createTime); | 
 |  |  |     } | 
 |  |  |  | 
 |  |  |  | 
 |  |  |     public void setCreateTime(Date createTime) { | 
 |  |  |         this.createTime = createTime; | 
 |  |  |     } | 
 |  |  | 
 |  |  |         this.memo = memo; | 
 |  |  |     } | 
 |  |  |  | 
 |  |  |     public String getPickStart$() { | 
 |  |  |         if (Cools.isEmpty(this.pickStart)){ | 
 |  |  |             return ""; | 
 |  |  |         } | 
 |  |  |         return new SimpleDateFormat("yyyy-MM-dd HH:mm:ss").format(this.pickStart); | 
 |  |  |     } | 
 |  |  |  | 
 |  |  |     public String getPickEnd$() { | 
 |  |  |         if (Cools.isEmpty(this.pickEnd)){ | 
 |  |  |             return ""; | 
 |  |  |         } | 
 |  |  |         return new SimpleDateFormat("yyyy-MM-dd HH:mm:ss").format(this.pickEnd); | 
 |  |  |     } | 
 |  |  | } | 
 
 |  |  | 
 |  |  |  | 
 |  |  | import com.baomidou.mybatisplus.annotations.TableId; | 
 |  |  | import com.baomidou.mybatisplus.enums.IdType; | 
 |  |  | import com.core.common.Cools;import io.swagger.annotations.ApiModelProperty; | 
 |  |  | import com.baomidou.mybatisplus.mapper.EntityWrapper; | 
 |  |  | import com.core.common.Cools; | 
 |  |  | import com.core.common.SpringUtils; | 
 |  |  | import io.swagger.annotations.ApiModelProperty; | 
 |  |  | import io.swagger.annotations.ApiModelProperty; | 
 |  |  | import com.baomidou.mybatisplus.annotations.TableField; | 
 |  |  | import io.swagger.annotations.ApiModelProperty; | 
 |  |  | 
 |  |  | import io.swagger.annotations.ApiModelProperty; | 
 |  |  |  | 
 |  |  | import com.baomidou.mybatisplus.annotations.TableName; | 
 |  |  | import zy.cloud.wms.manager.service.PickoutService; | 
 |  |  | import zy.cloud.wms.manager.service.impl.PickoutServiceImpl; | 
 |  |  | import zy.cloud.wms.system.entity.User; | 
 |  |  | import zy.cloud.wms.system.service.UserService; | 
 |  |  |  | 
 |  |  | import java.io.Serializable; | 
 |  |  |  | 
 |  |  | @Data | 
 |  |  | 
 |  |  |     @TableField("wrk_no") | 
 |  |  |     private String wrkNo; | 
 |  |  |  | 
 |  |  |  | 
 |  |  |     public PickoutDetl() {} | 
 |  |  |  | 
 |  |  |  | 
 |  |  | 
 |  |  |         return pickStaff; | 
 |  |  |     } | 
 |  |  |  | 
 |  |  |     public String getPickStaff$(){ | 
 |  |  |         PickoutService pickoutService = SpringUtils.getBean(PickoutService.class); | 
 |  |  |         Pickout pickout = pickoutService.selectOne(new EntityWrapper<Pickout>() | 
 |  |  |                 .eq("id", this.headId)); | 
 |  |  |         if (!Cools.isEmpty(pickout)) { | 
 |  |  |             UserService service = SpringUtils.getBean(UserService.class); | 
 |  |  |             User user = service.selectOne(new EntityWrapper<User>() | 
 |  |  |                     .eq("id", pickout.getPickStaff())); | 
 |  |  |             if (!Cools.isEmpty(user)) { | 
 |  |  |                 return user.getNickname(); | 
 |  |  |             } | 
 |  |  |         } | 
 |  |  |         return ""; | 
 |  |  |     } | 
 |  |  |  | 
 |  |  |     public void setPickStaff(Long pickStaff) { | 
 |  |  |         this.pickStaff = pickStaff; | 
 |  |  |     } | 
 |  |  | 
 |  |  |     } | 
 |  |  |  | 
 |  |  |     public String getPickStart$(){ | 
 |  |  |         if (Cools.isEmpty(this.pickStart)){ | 
 |  |  |         PickoutService service = SpringUtils.getBean(PickoutService.class); | 
 |  |  |         Pickout pickout = service.selectOne(new EntityWrapper<Pickout>() | 
 |  |  |                 .eq("id", this.headId)); | 
 |  |  |         if (!Cools.isEmpty(pickout)) { | 
 |  |  |             return pickout.getPickStart$(); | 
 |  |  |         } | 
 |  |  |             return ""; | 
 |  |  |         } | 
 |  |  |         return new SimpleDateFormat("yyyy-MM-dd HH:mm:ss").format(this.pickStart); | 
 |  |  |     } | 
 |  |  |  | 
 |  |  |  | 
 |  |  |  | 
 |  |  |     public void setPickStart(Date pickStart) { | 
 |  |  |         this.pickStart = pickStart; | 
 |  |  | 
 |  |  |     } | 
 |  |  |  | 
 |  |  |     public String getPickEnd$(){ | 
 |  |  |         if (Cools.isEmpty(this.pickEnd)){ | 
 |  |  |             return ""; | 
 |  |  |         PickoutService service = SpringUtils.getBean(PickoutService.class); | 
 |  |  |         Pickout pickout = service.selectOne(new EntityWrapper<Pickout>() | 
 |  |  |                 .eq("id", this.headId)); | 
 |  |  |         if (!Cools.isEmpty(pickout)) { | 
 |  |  |             return pickout.getPickEnd$(); | 
 |  |  |         } | 
 |  |  |         return new SimpleDateFormat("yyyy-MM-dd HH:mm:ss").format(this.pickEnd); | 
 |  |  |         return ""; | 
 |  |  |     } | 
 |  |  |  | 
 |  |  |     public void setPickEnd(Date pickEnd) { | 
 
| New file | 
 |  |  | 
 |  |  | package zy.cloud.wms.manager.entity.dto; | 
 |  |  |  | 
 |  |  | import lombok.Data; | 
 |  |  | import lombok.NoArgsConstructor; | 
 |  |  | import zy.cloud.wms.manager.entity.Pickout; | 
 |  |  | import zy.cloud.wms.manager.entity.PickoutDetl; | 
 |  |  |  | 
 |  |  | import java.util.List; | 
 |  |  |  | 
 |  |  | @Data | 
 |  |  | @NoArgsConstructor | 
 |  |  | public class PickOutPrintDTO { | 
 |  |  |     private Pickout pickout; | 
 |  |  |     private List<PickoutDetl> pickoutDetls; | 
 |  |  |     private Double total; | 
 |  |  |     private String workerName; | 
 |  |  |     private String custName; | 
 |  |  | } | 
 
 |  |  | 
 |  |  | import zy.cloud.wms.manager.entity.Order; | 
 |  |  | import zy.cloud.wms.manager.entity.OrderDetl; | 
 |  |  |  | 
 |  |  | import java.util.ArrayList; | 
 |  |  | import java.util.List; | 
 |  |  |  | 
 |  |  | @Mapper | 
 |  |  | 
 |  |  |     List<OrderDetl> selectByOrderNo(@Param("orderNo") String orderNo, @Param("hostId") Long hostId); | 
 |  |  |  | 
 |  |  |     List<OrderDetl> selectBatchByOrderNo(List<Order> orders); | 
 |  |  |  | 
 |  |  |     List<OrderDetl> selectOutList(@Param("matnr") String matnr, @Param("list") ArrayList<String> list); | 
 |  |  | } | 
 
 |  |  | 
 |  |  | import zy.cloud.wms.manager.entity.Order; | 
 |  |  | import zy.cloud.wms.manager.entity.OrderDetl; | 
 |  |  |  | 
 |  |  | import java.util.ArrayList; | 
 |  |  | import java.util.List; | 
 |  |  |  | 
 |  |  | public interface OrderDetlService extends IService<OrderDetl> { | 
 |  |  | 
 |  |  |     List<OrderDetl> selectByOrderNo(String orderNo, Long hostId); | 
 |  |  |  | 
 |  |  |     List<OrderDetl> selectBatchByOrderNo(List<Order> orders); | 
 |  |  |  | 
 |  |  |     List<OrderDetl> selectOutList(String matnr, ArrayList<String> strings); | 
 |  |  | } | 
 
 |  |  | 
 |  |  | package zy.cloud.wms.manager.service; | 
 |  |  |  | 
 |  |  | import com.core.common.R; | 
 |  |  | import zy.cloud.wms.manager.entity.Pickout; | 
 |  |  | import com.baomidou.mybatisplus.service.IService; | 
 |  |  |  | 
 |  |  | public interface PickoutService extends IService<Pickout> { | 
 |  |  |  | 
 |  |  |     void updateWaveStatus(String waveNo); | 
 |  |  |  | 
 |  |  |     R stockOutPrint(Pickout pickout, Long userId, Long hostId); | 
 |  |  | } | 
 
 |  |  | 
 |  |  | import com.baomidou.mybatisplus.service.impl.ServiceImpl; | 
 |  |  | import org.springframework.stereotype.Service; | 
 |  |  |  | 
 |  |  | import java.util.ArrayList; | 
 |  |  | import java.util.List; | 
 |  |  |  | 
 |  |  | @Service("orderDetlService") | 
 |  |  | 
 |  |  |     public List<OrderDetl> selectBatchByOrderNo(List<Order> orders) { | 
 |  |  |         return this.baseMapper.selectBatchByOrderNo(orders); | 
 |  |  |     } | 
 |  |  |  | 
 |  |  |     @Override | 
 |  |  |     public List<OrderDetl> selectOutList(String matnr, ArrayList<String> strings) { | 
 |  |  |         return this.baseMapper.selectOutList(matnr,strings); | 
 |  |  |     } | 
 |  |  | } | 
 
 |  |  | 
 |  |  | package zy.cloud.wms.manager.service.impl; | 
 |  |  |  | 
 |  |  | import com.baomidou.mybatisplus.mapper.EntityWrapper; | 
 |  |  | import com.core.common.Cools; | 
 |  |  | import com.core.common.R; | 
 |  |  | import org.springframework.beans.factory.annotation.Autowired; | 
 |  |  | import zy.cloud.wms.manager.entity.PickoutDetl; | 
 |  |  | import zy.cloud.wms.manager.entity.dto.PickOutPrintDTO; | 
 |  |  | import zy.cloud.wms.manager.mapper.PickoutMapper; | 
 |  |  | import zy.cloud.wms.manager.entity.Pickout; | 
 |  |  | import zy.cloud.wms.manager.service.PickoutDetlService; | 
 |  |  | import zy.cloud.wms.manager.service.PickoutService; | 
 |  |  | import com.baomidou.mybatisplus.service.impl.ServiceImpl; | 
 |  |  | import org.springframework.stereotype.Service; | 
 |  |  | import zy.cloud.wms.system.entity.Host; | 
 |  |  | import zy.cloud.wms.system.entity.User; | 
 |  |  | import zy.cloud.wms.system.service.HostService; | 
 |  |  | import zy.cloud.wms.system.service.UserService; | 
 |  |  |  | 
 |  |  | import java.util.List; | 
 |  |  |  | 
 |  |  | @Service("pickoutService") | 
 |  |  | public class PickoutServiceImpl extends ServiceImpl<PickoutMapper, Pickout> implements PickoutService { | 
 |  |  |     @Autowired | 
 |  |  |     private PickoutService pickoutService; | 
 |  |  |     @Autowired | 
 |  |  |     private PickoutDetlService pickoutDetlService; | 
 |  |  |     @Autowired | 
 |  |  |     private UserService userService; | 
 |  |  |     @Autowired | 
 |  |  |     private HostService hostService; | 
 |  |  |  | 
 |  |  |     @Override | 
 |  |  |     public void updateWaveStatus(String waveNo) { | 
 |  |  |         this.baseMapper.updateWaveStatus(waveNo); | 
 |  |  |     } | 
 |  |  |  | 
 |  |  |     /** | 
 |  |  |      * 打印拣货单 | 
 |  |  |      * @param pickout | 
 |  |  |      * @param userId | 
 |  |  |      * @param hostId | 
 |  |  |      * @return | 
 |  |  |      */ | 
 |  |  |     @Override | 
 |  |  |     public R stockOutPrint(Pickout pickout, Long userId, Long hostId) { | 
 |  |  |         /** | 
 |  |  |          * 初始化与控管 | 
 |  |  |          */ | 
 |  |  |         PickOutPrintDTO printDTO = new PickOutPrintDTO(); | 
 |  |  |         Double total = 0.0; | 
 |  |  |         List<PickoutDetl> pickoutDetls = pickoutDetlService.selectList(new EntityWrapper<PickoutDetl>() | 
 |  |  |                 .eq("head_id", pickout.getId())); | 
 |  |  |         if (Cools.isEmpty(pickoutDetls)) { | 
 |  |  |             return R.error("无法找到该单据明细"); | 
 |  |  |         } | 
 |  |  |         for (PickoutDetl pickoutDetl : pickoutDetls) { | 
 |  |  |             total = total + pickoutDetl.getAnfme(); | 
 |  |  |         } | 
 |  |  |  | 
 |  |  |         if (Cools.isEmpty(userId)) { | 
 |  |  |             User user = userService.selectOne(new EntityWrapper<User>() | 
 |  |  |                     .eq("id", userId)); | 
 |  |  |             if (Cools.isEmpty(user)) { | 
 |  |  |                 printDTO.setWorkerName("默认拣货员"); | 
 |  |  |             } | 
 |  |  |             else { | 
 |  |  |                 printDTO.setWorkerName(user.getNickname()); | 
 |  |  |             } | 
 |  |  |         }else { | 
 |  |  |             printDTO.setWorkerName("默认拣货员"); | 
 |  |  |         } | 
 |  |  |  | 
 |  |  |         if (Cools.isEmpty(hostId)) { | 
 |  |  |             Host host = hostService.selectOne(new EntityWrapper<Host>() | 
 |  |  |                     .eq("id", hostId)); | 
 |  |  |             if (Cools.isEmpty(host)) { | 
 |  |  |                 printDTO.setCustName("默认商户"); | 
 |  |  |             }else { | 
 |  |  |                 printDTO.setCustName(host.getName()); | 
 |  |  |             } | 
 |  |  |         }else { | 
 |  |  |             printDTO.setCustName("默认商户"); | 
 |  |  |         } | 
 |  |  |  | 
 |  |  |         printDTO.setPickoutDetls(pickoutDetls); | 
 |  |  |         printDTO.setPickout(pickout); | 
 |  |  |         printDTO.setTotal(total); | 
 |  |  |         return R.ok().add(printDTO); | 
 |  |  |     } | 
 |  |  | } | 
 
 |  |  | 
 |  |  |             order_no = #{orders.orderNo} | 
 |  |  |         </foreach> | 
 |  |  |     </select> | 
 |  |  |     <select id="selectOutList" resultMap="BaseResultMap"> | 
 |  |  |         SELECT * FROM man_order_detl WHERE 1 = 1 | 
 |  |  |                                        AND matnr = #{matnr} | 
 |  |  |         AND | 
 |  |  |         <foreach collection="list" open="(" close=")" separator="or" index="index" item="item"> | 
 |  |  |             order_no = #{item} | 
 |  |  |         </foreach> | 
 |  |  |     </select> | 
 |  |  |  | 
 |  |  | </mapper> | 
 
 |  |  | 
 |  |  |         <result column="order_qty" property="orderQty" /> | 
 |  |  |         <result column="order_nos" property="orderNos" /> | 
 |  |  |         <result column="wave_no" property="waveNo" /> | 
 |  |  |         <result column="print_times" property="printTimes" /> | 
 |  |  |         <result column="pick_staff" property="pickStaff" /> | 
 |  |  |         <result column="pick_start" property="pickStart" /> | 
 |  |  |         <result column="pick_end" property="pickEnd" /> | 
 |  |  |  | 
 |  |  |     </resultMap> | 
 |  |  |     <update id="updateWaveStatus"> | 
 
 |  |  | 
 |  |  |             ,{field: 'userId', align: 'center',title: '用户ID', hide: true} | 
 |  |  |  | 
 |  |  |             ,{field: 'wrkSts$', align: 'center',title: '工作状态' ,templet: '#wrkStsTpl' , width: 100} | 
 |  |  |             ,{field: 'printTimes', align: 'center', title: '打印次数',width: 90} | 
 |  |  |             ,{field: 'zpallet', align: 'center',title: '条形码' , hide:true} | 
 |  |  |             ,{field: 'createTime$', align: 'center',title: '', hide:true} | 
 |  |  |             ,{field: 'createBy', align: 'center',title: '', hide:true} | 
 |  |  | 
 |  |  |     // 监听行工具事件 | 
 |  |  |     table.on('tool(leftTable)', function(obj){ | 
 |  |  |         var data = obj.data; | 
 |  |  |  | 
 |  |  |  | 
 |  |  |  | 
 |  |  |         switch (obj.event) { | 
 |  |  |             case 'printOrder': | 
 |  |  |                 printPick(data); | 
 |  |  | 
 |  |  |             case "del": | 
 |  |  |                 var ids = [data.id]; | 
 |  |  |                 del(ids); | 
 |  |  |                 break; | 
 |  |  |             case "complete": | 
 |  |  |                 donePickOut(data); | 
 |  |  |                 break; | 
 |  |  |         } | 
 |  |  |     }); | 
 |  |  | 
 |  |  |         tableReload(false); | 
 |  |  |     }); | 
 |  |  |  | 
 |  |  |     function printPick(data){ | 
 |  |  |     function donePickOut(data) { | 
 |  |  |         $.ajax({ | 
 |  |  |             url:baseUrl + "/pickout/done/auth", | 
 |  |  |             headers : {'token' : localStorage.getItem('token')}, | 
 |  |  |             data: JSON.stringify(data), | 
 |  |  |             contentType:'application/json;charset=UTF-8', | 
 |  |  |             method: 'POST', | 
 |  |  |             success: function (res) { | 
 |  |  |  | 
 |  |  |                 leftTB.reload(); | 
 |  |  |             } | 
 |  |  |         }) | 
 |  |  |     } | 
 |  |  |  | 
 |  |  |     function printPick(data){ | 
 |  |  |         $.ajax({ | 
 |  |  |             url:baseUrl + "/work/pick/out/print", | 
 |  |  |             headers : {'token' : localStorage.getItem('token')}, | 
 |  |  |             data: JSON.stringify(data), | 
 |  |  |             contentType:'application/json;charset=UTF-8', | 
 |  |  |             method: 'POST', | 
 |  |  |             success: function (res) { | 
 |  |  |                     if (res.code === 200){ | 
 |  |  |                         console.log(res); | 
 |  |  |                         res.data["barcodeUrl"]=baseUrl+"/order/code/auth?type=1¶m="+res.data.pickout.wrkNo; | 
 |  |  |                         var tpl = $('#pakoutPrintTpl').html(); | 
 |  |  |                         var template = Handlebars.compile(tpl); | 
 |  |  |                         var html = template(res); | 
 |  |  |                         var box = $("#pakoutPrintBox"); | 
 |  |  |                         box.html(html);box.show(); | 
 |  |  |                         box.print({ | 
 |  |  |                             mediaPrint:true, | 
 |  |  |                             deferred: $.Deferred().done(function () { | 
 |  |  |                                 layer.confirm('[重要] 打印是否成功?',  {btn: ['Yes', 'No']}, function(){ | 
 |  |  |                                     $.ajax({ | 
 |  |  |                                         url: baseUrl+"/pickout/print/auth", | 
 |  |  |                                         headers: {'token': localStorage.getItem('token')}, | 
 |  |  |                                         data: JSON.stringify(res.data.pickout), | 
 |  |  |                                         contentType:'application/json;charset=UTF-8', | 
 |  |  |                                         method: 'POST', | 
 |  |  |                                         success: function (res) { | 
 |  |  |                                             if (res.code === 200){ | 
 |  |  |                                                 layer.closeAll(); | 
 |  |  |                                                 $(".layui-laypage-btn")[0].click(); | 
 |  |  |                                                 layer.msg(res.msg, {icon: 1}) | 
 |  |  |                                             } else if (res.code === 403){ | 
 |  |  |                                                 top.location.href = baseUrl+"/"; | 
 |  |  |                                             } else { | 
 |  |  |                                                 layer.msg(res.msg, {icon: 2}) | 
 |  |  |                                             } | 
 |  |  |                                             leftTB.reload(); | 
 |  |  |                                         } | 
 |  |  |                                     }) | 
 |  |  |                                 }); | 
 |  |  |                             }) | 
 |  |  |                         }); | 
 |  |  |                         box.hide(); | 
 |  |  |                     } | 
 |  |  |                     else if (res.code === 403){ | 
 |  |  |                         top.location.href = baseUrl+"/"; | 
 |  |  |                     }else { | 
 |  |  |                         layer.msg(res.msg, {icon: 2}) | 
 |  |  |                     } | 
 |  |  |  | 
 |  |  |             } | 
 |  |  |  | 
 |  |  |         }) | 
 |  |  |     } | 
 |  |  |  | 
 |  |  |  | 
 |  |  | 
 |  |  |             ,{field: 'price', align: 'center',title: '价格', hide:true} | 
 |  |  |             ,{field: 'weight', align: 'center',title: '重量', hide:true} | 
 |  |  |             ,{field: 'status', align: 'center',title: '状态' , hide:true} | 
 |  |  |             ,{field: 'pickStaff', align: 'center',title: '拣货员ID'} | 
 |  |  |             ,{field: 'pickStaff$', align: 'center',title: '拣货员ID'} | 
 |  |  |             ,{field: 'pickStart$', align: 'center',title: '拣货开始时间'} | 
 |  |  |             ,{field: 'pickEnd$', align: 'center',title: '拣货结束时间'} | 
 |  |  |             ,{field: 'createTime$', align: 'center',title: '创建时间', hide:true} | 
 
 |  |  | 
 |  |  |     </div> | 
 |  |  | </div> | 
 |  |  |  | 
 |  |  | <!-- 打印容器 --> | 
 |  |  | <div id="pakoutPrintBox" style="display: none"></div> | 
 |  |  | <!--<!– 搜索栏 –>--> | 
 |  |  | <!--<div id="search-box" class="layui-form layui-card-header">--> | 
 |  |  | <!--    <div class="layui-inline">--> | 
 |  |  | 
 |  |  | </script> | 
 |  |  |  | 
 |  |  | <script type="text/html" id="operate"> | 
 |  |  |     {{#if (d.wrkSts == 3){ }} | 
 |  |  |     <a class="layui-btn layui-btn-xs btn-complete" lay-event="complete">完成</a> | 
 |  |  |     {{# } }} | 
 |  |  |  | 
 |  |  |     {{#if (d.wrkSts == 1||d.wrkSts == 2){ }} | 
 |  |  |     <a class="layui-btn layui-btn-xs layui-btn-normal" lay-event="printOrder">打印拣货单</a> | 
 |  |  |     {{# } }} | 
 |  |  | 
 |  |  |  | 
 |  |  |  | 
 |  |  | <!--    <a class="layui-btn layui-btn-primary layui-btn-xs" lay-event="detail">详情</a>--> | 
 |  |  |     {{#if (d.wrkSts == 1||d.wrkSts == 2){ }} | 
 |  |  |     {{#if (d.wrkSts == 1){ }} | 
 |  |  |     <a class="layui-btn layui-btn-danger layui-btn-xs btn-edit" lay-event="del">撤销</a> | 
 |  |  |     {{# } }} | 
 |  |  |     {{#if (d.wrkSts == 2){ }} | 
 |  |  |     <a class="layui-btn layui-btn-xs btn-complete" lay-event="complete">完成</a> | 
 |  |  |     {{# } }} | 
 |  |  | <!--    <a class="layui-btn layui-btn-primary layui-btn-xs btn-edit" lay-event="edit">修改</a>--> | 
 |  |  |  | 
 |  |  | 
 |  |  | <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/jquery/jQuery.print.js"></script> | 
 |  |  | <script type="text/javascript" src="../../static/js/cool.js" charset="utf-8"></script> | 
 |  |  | <script type="text/javascript" src="../../static/js/handlebars/handlebars-v4.5.3.js"></script> | 
 |  |  | <script type="text/javascript" src="../../static/js/pickout/pickout.js" charset="utf-8"></script> | 
 |  |  | </body> | 
 |  |  | <!-- 表单弹窗 --> | 
 |  |  | 
 |  |  |         </div> | 
 |  |  |     </form> | 
 |  |  | </script> | 
 |  |  |  | 
 |  |  |  | 
 |  |  | <script type="text/template" id="pakoutPrintTpl"> | 
 |  |  |     <!-- 头 --> | 
 |  |  |     <div id="print-header" style="margin: 20px 0"> | 
 |  |  |         <div style="text-align: center"> | 
 |  |  |             <div style="text-align: center;margin-bottom: 10px"> | 
 |  |  |                 <span style="font-family: 宋体"> 拣货单 </span> | 
 |  |  |             </div> | 
 |  |  |  | 
 |  |  |             <img class="template-code template-qrcode" src="{{data.barcodeUrl}}" style="width: 80%"> | 
 |  |  |             <p style="letter-spacing: 2px;margin-top: 5px">{{data.pickout.wrkNo}}</p> | 
 |  |  |         </div> | 
 |  |  |         <div style="font-size: xx-small; text-align: left; margin-top: 10px"> | 
 |  |  |             <span style="font-family: 宋体">客户:{{data.custName}}</span> | 
 |  |  |         </div> | 
 |  |  |         <div style="margin-top: 10px"> | 
 |  |  |             <div style="float: left;width: 50%; text-align: left"> | 
 |  |  |                 <span style="font-size: xx-small;font-family: 宋体">拣货数量:{{data.total}}</span> | 
 |  |  |             </div> | 
 |  |  |             <div style="float: left; width: 50%; text-align: right"> | 
 |  |  |                 <span style="font-size: xx-small;font-family: 宋体">拣货人:{{data.workerName}}</span> | 
 |  |  |             </div> | 
 |  |  |             <div style="clear:both;"></div> | 
 |  |  |         </div> | 
 |  |  |     </div> | 
 |  |  |  | 
 |  |  |     <!-- 主体 --> | 
 |  |  |     <div style="margin-top: 10px"> | 
 |  |  |         {{#each data.pickoutDetls}} | 
 |  |  |         <div class="pakout-item" style="padding: 10px 5px 10px 5px;border-top: 1px solid #525252"> | 
 |  |  |             <div class="item-header" style="margin-top: 10px;font-family: 宋体; font-size: x-small"> | 
 |  |  |                 {{maktx}} | 
 |  |  |             </div> | 
 |  |  |             <div class="item-content" style="margin: 10px 0 "> | 
 |  |  |                 <div style="float: left;font-family: 宋体; font-size: xx-small">{{anfme}}{{unit}}</div> | 
 |  |  |                 <div style="float: right;font-family: 宋体; font-size: xx-small">货位:{{nodeName}}</div> | 
 |  |  |                 <div style="clear: both;"></div> | 
 |  |  |             </div> | 
 |  |  |         </div> | 
 |  |  |         {{/each}} | 
 |  |  |     </div> | 
 |  |  | </script> | 
 |  |  | </html> | 
 |  |  |  |