|
@@ -7,8 +7,10 @@ import com.alibaba.fastjson.JSONObject;
|
|
import com.baomidou.mybatisplus.core.toolkit.Wrappers;
|
|
import com.baomidou.mybatisplus.core.toolkit.Wrappers;
|
|
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
|
|
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
|
|
import com.fjhx.constants.StatusConstant;
|
|
import com.fjhx.constants.StatusConstant;
|
|
|
|
+import com.fjhx.entity.plan.PlanConfig;
|
|
import com.fjhx.entity.stock.StockBackPlan;
|
|
import com.fjhx.entity.stock.StockBackPlan;
|
|
import com.fjhx.entity.stock.StockBackPlanDetails;
|
|
import com.fjhx.entity.stock.StockBackPlanDetails;
|
|
|
|
+import com.fjhx.plan.service.PlanConfigService;
|
|
import com.fjhx.stock.mapper.StockBackPlanMapper;
|
|
import com.fjhx.stock.mapper.StockBackPlanMapper;
|
|
import com.fjhx.stock.service.StockBackPlanDetailsService;
|
|
import com.fjhx.stock.service.StockBackPlanDetailsService;
|
|
import com.fjhx.stock.service.StockBackPlanService;
|
|
import com.fjhx.stock.service.StockBackPlanService;
|
|
@@ -33,61 +35,74 @@ import java.util.stream.Collectors;
|
|
@Service
|
|
@Service
|
|
public class StockBackPlanServiceImpl extends ServiceImpl<StockBackPlanMapper, StockBackPlan> implements StockBackPlanService {
|
|
public class StockBackPlanServiceImpl extends ServiceImpl<StockBackPlanMapper, StockBackPlan> implements StockBackPlanService {
|
|
|
|
|
|
|
|
+ @Autowired
|
|
|
|
+ private PlanConfigService planConfigService;
|
|
|
|
+
|
|
private static final RestTemplate restTemplate = new RestTemplate();
|
|
private static final RestTemplate restTemplate = new RestTemplate();
|
|
|
|
|
|
private static final Object obj = new Object();
|
|
private static final Object obj = new Object();
|
|
|
|
|
|
- private static final List<String> materialNameList = Arrays.asList(
|
|
|
|
- "黑色 170克100%精梳棉",
|
|
|
|
- "灰色 170克100%精梳棉",
|
|
|
|
- "空白鼠标垫+密锁边",
|
|
|
|
- "法兰绒"
|
|
|
|
- );
|
|
|
|
|
|
+ // private static final List<String> materialNameList = Arrays.asList(
|
|
|
|
+ // "黑色 170克100%精梳棉",
|
|
|
|
+ // "灰色 170克100%精梳棉",
|
|
|
|
+ // "空白鼠标垫+密锁边",
|
|
|
|
+ // "法兰绒"
|
|
|
|
+ // );
|
|
|
|
|
|
@Autowired
|
|
@Autowired
|
|
private StockBackPlanDetailsService stockBackPlanDetailsService;
|
|
private StockBackPlanDetailsService stockBackPlanDetailsService;
|
|
|
|
|
|
@Transactional(rollbackFor = Exception.class)
|
|
@Transactional(rollbackFor = Exception.class)
|
|
@Override
|
|
@Override
|
|
- public void getScheduleTask(int offset) {
|
|
|
|
|
|
+ public void synchronousScheduling() {
|
|
|
|
|
|
synchronized (obj) {
|
|
synchronized (obj) {
|
|
|
|
|
|
|
|
+ // 配置map
|
|
|
|
+ Map<String, PlanConfig> planConfigMap = planConfigService.list()
|
|
|
|
+ .stream().collect(Collectors.toMap(PlanConfig::getCode, item -> item));
|
|
|
|
+
|
|
|
|
+ Integer nextStatisticsDay = planConfigMap.get("nextStatisticsDay").getDays();
|
|
|
|
+ Integer defaultStatisticsDay = planConfigMap.get("defaultStatisticsDay").getDays();
|
|
|
|
+ int offset = nextStatisticsDay - 1;
|
|
|
|
+
|
|
|
|
+
|
|
|
|
+ List<String> materialNameList = Arrays.asList(planConfigMap.get("excludeMaterial").getOther().split(","));
|
|
|
|
+
|
|
// 请求v3接口获取token
|
|
// 请求v3接口获取token
|
|
String token = getToken();
|
|
String token = getToken();
|
|
|
|
|
|
// 请求v3接口获取所有人领料信息
|
|
// 请求v3接口获取所有人领料信息
|
|
Date date = new Date();
|
|
Date date = new Date();
|
|
|
|
|
|
- String beginDate = DateUtil.format(DateUtil.offsetDay(date, -offset), "yyyy-MM-dd 00:00:00");
|
|
|
|
- String endDate = DateUtil.format(date, "yyyy-MM-dd 23:59:59");
|
|
|
|
|
|
+ String beginDateStr = DateUtil.format(DateUtil.offsetDay(date, -offset), "yyyy-MM-dd 00:00:00");
|
|
|
|
+ String endDateStr = DateUtil.format(date, "yyyy-MM-dd 23:59:59");
|
|
|
|
|
|
String url = "http://mes.cfmfactory.com:8087/MesWeb/planPersonOutAction.do?action=list&beginDate="
|
|
String url = "http://mes.cfmfactory.com:8087/MesWeb/planPersonOutAction.do?action=list&beginDate="
|
|
- + beginDate + "&endDate=" + endDate + "&access_token=" + token;
|
|
|
|
|
|
+ + beginDateStr + "&endDate=" + endDateStr + "&access_token=" + token;
|
|
|
|
|
|
String resultStr = restTemplate.getForEntity(url, String.class).getBody();
|
|
String resultStr = restTemplate.getForEntity(url, String.class).getBody();
|
|
JSONObject resultMap = JSONObject.parseObject(resultStr);
|
|
JSONObject resultMap = JSONObject.parseObject(resultStr);
|
|
|
|
+
|
|
// 接收到的消息
|
|
// 接收到的消息
|
|
List<JSONObject> items = (List<JSONObject>) resultMap.get("items");
|
|
List<JSONObject> items = (List<JSONObject>) resultMap.get("items");
|
|
|
|
|
|
- remove(Wrappers.<StockBackPlan>lambdaQuery().between(StockBackPlan::getPlanTime, beginDate, endDate));
|
|
|
|
|
|
+ remove(Wrappers.<StockBackPlan>lambdaQuery().between(StockBackPlan::getPlanTime, beginDateStr, endDateStr));
|
|
|
|
|
|
Map<String, StockBackPlan> flagMap = new HashMap<>();
|
|
Map<String, StockBackPlan> flagMap = new HashMap<>();
|
|
|
|
|
|
- Date newDate = new Date();
|
|
|
|
-
|
|
|
|
// 循环领料信息
|
|
// 循环领料信息
|
|
items.forEach(item -> {
|
|
items.forEach(item -> {
|
|
// 喷印人员工号
|
|
// 喷印人员工号
|
|
- String distributor = item.get("distributor").toString();
|
|
|
|
|
|
+ String distributor = item.getString("distributor");
|
|
// 打纸人员工号
|
|
// 打纸人员工号
|
|
- String paperMan = item.get("paperMan").toString();
|
|
|
|
|
|
+ String paperMan = item.getString("paperMan");
|
|
// 排班面积
|
|
// 排班面积
|
|
- BigDecimal plantotalsquare = new BigDecimal(item.get("plantotalsquare").toString());
|
|
|
|
|
|
+ BigDecimal plantotalsquare = new BigDecimal(item.getString("plantotalsquare"));
|
|
// 物料名称
|
|
// 物料名称
|
|
- String material = item.get("material").toString();
|
|
|
|
|
|
+ String material = item.getString("material");
|
|
// 排班时间
|
|
// 排班时间
|
|
- String planDate = item.get("planDate").toString();
|
|
|
|
|
|
+ String planDate = item.getString("planDate");
|
|
|
|
|
|
if (materialNameList.contains(material)) {
|
|
if (materialNameList.contains(material)) {
|
|
return;
|
|
return;
|
|
@@ -107,38 +122,29 @@ public class StockBackPlanServiceImpl extends ServiceImpl<StockBackPlanMapper, S
|
|
|
|
|
|
if (!"胶印".equals(tech)) {
|
|
if (!"胶印".equals(tech)) {
|
|
// 喷印人员工号添加领料记录标记
|
|
// 喷印人员工号添加领料记录标记
|
|
- addOrEditFlagMap(flagMap, distributor, plantotalsquare, planDate, material, tech, newDate);
|
|
|
|
|
|
+ addOrEditFlagMap(flagMap, distributor, plantotalsquare, planDate, material, tech, date);
|
|
|
|
|
|
// 打纸人员工号添加领料记录标记
|
|
// 打纸人员工号添加领料记录标记
|
|
- addOrEditFlagMap(flagMap, paperMan, plantotalsquare, planDate, "热转印纸", "打纸", newDate);
|
|
|
|
|
|
+ addOrEditFlagMap(flagMap, paperMan, plantotalsquare, planDate, "热转印纸", "打纸", date);
|
|
}
|
|
}
|
|
|
|
|
|
});
|
|
});
|
|
|
|
|
|
- // 更新当天的出库单
|
|
|
|
- saveBatch(new ArrayList<>(flagMap.values()));
|
|
|
|
-
|
|
|
|
- }
|
|
|
|
- }
|
|
|
|
|
|
+ // 当天出库
|
|
|
|
+ List<StockBackPlan> stockBackPlanList = new ArrayList<>(flagMap.values());
|
|
|
|
|
|
- @Transactional(rollbackFor = Exception.class)
|
|
|
|
- @Override
|
|
|
|
- public void statisticsScheduleDateTask(int offset) {
|
|
|
|
-
|
|
|
|
- synchronized (obj) {
|
|
|
|
-
|
|
|
|
- // 统计近 offset 天排班
|
|
|
|
- Date endDate = new Date();
|
|
|
|
- Date beginDate = DateUtil.beginOfDay(DateUtil.offsetDay(endDate, -offset));
|
|
|
|
|
|
+ // 更新当天的出库单
|
|
|
|
+ saveBatch(stockBackPlanList);
|
|
|
|
|
|
- List<StockBackPlan> list = list(Wrappers.<StockBackPlan>lambdaQuery()
|
|
|
|
- .between(StockBackPlan::getPlanTime, beginDate, endDate));
|
|
|
|
|
|
+ // 开始时间
|
|
|
|
+ Date beginDate = DateUtil.beginOfDay(DateUtil.offsetDay(date, -offset));
|
|
|
|
|
|
|
|
+ // 删除排班统计
|
|
stockBackPlanDetailsService.remove(Wrappers.<StockBackPlanDetails>lambdaQuery()
|
|
stockBackPlanDetailsService.remove(Wrappers.<StockBackPlanDetails>lambdaQuery()
|
|
- .between(StockBackPlanDetails::getPlanTime, beginDate, endDate));
|
|
|
|
|
|
+ .between(StockBackPlanDetails::getPlanTime, beginDate, date));
|
|
|
|
|
|
// 工号,物料名称,排班时间封装成key,对象为value
|
|
// 工号,物料名称,排班时间封装成key,对象为value
|
|
- Map<String, StockBackPlanDetails> stockBackPlanMap = list.stream().collect(Collectors.toMap(
|
|
|
|
|
|
+ Map<String, StockBackPlanDetails> stockBackPlanMap = stockBackPlanList.stream().collect(Collectors.toMap(
|
|
item -> item.getJobNo() + item.getPlanMaterial() + item.getPlanTime().getTime(),
|
|
item -> item.getJobNo() + item.getPlanMaterial() + item.getPlanTime().getTime(),
|
|
item -> {
|
|
item -> {
|
|
StockBackPlanDetails stockBackPlanDetails =
|
|
StockBackPlanDetails stockBackPlanDetails =
|
|
@@ -150,35 +156,107 @@ public class StockBackPlanServiceImpl extends ServiceImpl<StockBackPlanMapper, S
|
|
));
|
|
));
|
|
|
|
|
|
// 查询出库
|
|
// 查询出库
|
|
- issue(beginDate, stockBackPlanMap);
|
|
|
|
|
|
+ issue(planConfigMap.get("issue"), beginDate, stockBackPlanMap);
|
|
|
|
|
|
// 转印部门出库
|
|
// 转印部门出库
|
|
- issueA008(beginDate, stockBackPlanMap);
|
|
|
|
|
|
+ issueA008(planConfigMap.get("issueA008"), beginDate, stockBackPlanMap);
|
|
|
|
|
|
// 回仓
|
|
// 回仓
|
|
- returnWarehouse(beginDate, stockBackPlanMap);
|
|
|
|
|
|
+ returnWarehouse(planConfigMap.get("returnWarehouse"), beginDate, stockBackPlanMap);
|
|
|
|
|
|
// 转印部门回仓
|
|
// 转印部门回仓
|
|
- returnWarehouseA008(beginDate, stockBackPlanMap);
|
|
|
|
|
|
+ returnWarehouseA008(planConfigMap.get("returnWarehouseA008"), beginDate, stockBackPlanMap);
|
|
|
|
|
|
// 物料修正
|
|
// 物料修正
|
|
- correct(beginDate, stockBackPlanMap);
|
|
|
|
|
|
+ correct(planConfigMap.get("correct"), beginDate, stockBackPlanMap);
|
|
|
|
|
|
// 转入
|
|
// 转入
|
|
- transferIn(beginDate, stockBackPlanMap);
|
|
|
|
|
|
+ transferIn(planConfigMap.get("transferIn"), beginDate, stockBackPlanMap);
|
|
|
|
|
|
// 转出
|
|
// 转出
|
|
- transferOut(beginDate, stockBackPlanMap);
|
|
|
|
|
|
+ transferOut(planConfigMap.get("transferOut"), beginDate, stockBackPlanMap);
|
|
|
|
|
|
// 布头布尾修正
|
|
// 布头布尾修正
|
|
- headTailCorrect(beginDate, stockBackPlanMap);
|
|
|
|
|
|
+ headTailCorrect(planConfigMap.get("headTailCorrect"), beginDate, stockBackPlanMap);
|
|
|
|
|
|
stockBackPlanDetailsService.saveBatch(new ArrayList<>(stockBackPlanMap.values()));
|
|
stockBackPlanDetailsService.saveBatch(new ArrayList<>(stockBackPlanMap.values()));
|
|
|
|
|
|
- }
|
|
|
|
|
|
+ // 如果时间不相同
|
|
|
|
+ if (!Objects.equals(defaultStatisticsDay, nextStatisticsDay)) {
|
|
|
|
+ planConfigService.update(Wrappers.<PlanConfig>lambdaUpdate()
|
|
|
|
+ .eq(PlanConfig::getCode, "nextStatisticsDay")
|
|
|
|
+ .eq(PlanConfig::getDays, nextStatisticsDay)
|
|
|
|
+ .set(PlanConfig::getDays, defaultStatisticsDay)
|
|
|
|
+ );
|
|
|
|
+ }
|
|
|
|
|
|
|
|
+ // 最近一次更新时间
|
|
|
|
+ planConfigService.update(Wrappers.<PlanConfig>lambdaUpdate()
|
|
|
|
+ .eq(PlanConfig::getCode, "lastStatisticsTime")
|
|
|
|
+ .set(PlanConfig::getOther, DateUtil.format(date, "yyyy-MM-dd HH:mm:ss"))
|
|
|
|
+ );
|
|
|
|
+
|
|
|
|
+ }
|
|
}
|
|
}
|
|
|
|
|
|
|
|
+ // @Transactional(rollbackFor = Exception.class)
|
|
|
|
+ // @Override
|
|
|
|
+ // public void statisticsScheduleDateTask(int offset) {
|
|
|
|
+ //
|
|
|
|
+ // synchronized (obj) {
|
|
|
|
+ //
|
|
|
|
+ // // 统计近 offset 天排班
|
|
|
|
+ // Date endDate = new Date();
|
|
|
|
+ // Date beginDate = DateUtil.beginOfDay(DateUtil.offsetDay(endDate, -offset));
|
|
|
|
+ //
|
|
|
|
+ // List<StockBackPlan> list = list(Wrappers.<StockBackPlan>lambdaQuery()
|
|
|
|
+ // .between(StockBackPlan::getPlanTime, beginDate, endDate));
|
|
|
|
+ //
|
|
|
|
+ // stockBackPlanDetailsService.remove(Wrappers.<StockBackPlanDetails>lambdaQuery()
|
|
|
|
+ // .between(StockBackPlanDetails::getPlanTime, beginDate, endDate));
|
|
|
|
+ //
|
|
|
|
+ // // 工号,物料名称,排班时间封装成key,对象为value
|
|
|
|
+ // Map<String, StockBackPlanDetails> stockBackPlanMap = list.stream().collect(Collectors.toMap(
|
|
|
|
+ // item -> item.getJobNo() + item.getPlanMaterial() + item.getPlanTime().getTime(),
|
|
|
|
+ // item -> {
|
|
|
|
+ // StockBackPlanDetails stockBackPlanDetails =
|
|
|
|
+ // createStockBackPlanDetails(item.getJobNo(), item.getPlanMaterial(), item.getPlanTime());
|
|
|
|
+ // stockBackPlanDetails.setQuantity(item.getQuantity());
|
|
|
|
+ // stockBackPlanDetails.setTech(item.getTech());
|
|
|
|
+ // return stockBackPlanDetails;
|
|
|
|
+ // }
|
|
|
|
+ // ));
|
|
|
|
+ //
|
|
|
|
+ // // 查询出库
|
|
|
|
+ // issue(beginDate, stockBackPlanMap);
|
|
|
|
+ //
|
|
|
|
+ // // 转印部门出库
|
|
|
|
+ // issueA008(beginDate, stockBackPlanMap);
|
|
|
|
+ //
|
|
|
|
+ // // 回仓
|
|
|
|
+ // returnWarehouse(beginDate, stockBackPlanMap);
|
|
|
|
+ //
|
|
|
|
+ // // 转印部门回仓
|
|
|
|
+ // returnWarehouseA008(beginDate, stockBackPlanMap);
|
|
|
|
+ //
|
|
|
|
+ // // 物料修正
|
|
|
|
+ // correct(beginDate, stockBackPlanMap);
|
|
|
|
+ //
|
|
|
|
+ // // 转入
|
|
|
|
+ // transferIn(beginDate, stockBackPlanMap);
|
|
|
|
+ //
|
|
|
|
+ // // 转出
|
|
|
|
+ // transferOut(beginDate, stockBackPlanMap);
|
|
|
|
+ //
|
|
|
|
+ // // 布头布尾修正
|
|
|
|
+ // headTailCorrect(beginDate, stockBackPlanMap);
|
|
|
|
+ //
|
|
|
|
+ // stockBackPlanDetailsService.saveBatch(new ArrayList<>(stockBackPlanMap.values()));
|
|
|
|
+ //
|
|
|
|
+ // }
|
|
|
|
+ //
|
|
|
|
+ // }
|
|
|
|
+
|
|
|
|
|
|
private StockBackPlanDetails createStockBackPlanDetails(String jobNo, String materialName, Date planDate) {
|
|
private StockBackPlanDetails createStockBackPlanDetails(String jobNo, String materialName, Date planDate) {
|
|
StockBackPlanDetails stockBackPlanDetails = new StockBackPlanDetails();
|
|
StockBackPlanDetails stockBackPlanDetails = new StockBackPlanDetails();
|
|
@@ -258,15 +336,22 @@ public class StockBackPlanServiceImpl extends ServiceImpl<StockBackPlanMapper, S
|
|
/**
|
|
/**
|
|
* 出库
|
|
* 出库
|
|
*/
|
|
*/
|
|
- private void issue(Date beginDate, Map<String, StockBackPlanDetails> stockBackPlanMap) {
|
|
|
|
|
|
+ private void issue(PlanConfig planConfig, Date beginDate, Map<String, StockBackPlanDetails> stockBackPlanMap) {
|
|
|
|
+
|
|
|
|
+ String beginTime = planConfig.getBeginTime();
|
|
|
|
+ List<String> deptIdList = Arrays.asList(planConfig.getDeptIdSet().split(","));
|
|
|
|
+ List<String> notCategoryCodeList = Arrays.asList(planConfig.getNotCategoryCodeSet().split(","));
|
|
|
|
+
|
|
|
|
+ String[] split = beginTime.split(":");
|
|
|
|
+ int configH = Convert.toInt(split[0]);
|
|
|
|
+ int configM = Convert.toInt(split[1]);
|
|
|
|
+
|
|
List<Map<String, Object>> pickingList = baseMapper.getWater(Wrappers.query()
|
|
List<Map<String, Object>> pickingList = baseMapper.getWater(Wrappers.query()
|
|
- .ge("swd.CreatedTime", DateUtil.format(beginDate, "yyyy-MM-dd 7:00:00"))
|
|
|
|
|
|
+ .ge("swd.CreatedTime", DateUtil.format(beginDate, "yyyy-MM-dd " + beginTime))
|
|
.in("swd.StockChangeType", 20, 23)
|
|
.in("swd.StockChangeType", 20, 23)
|
|
.eq("uu.IsDelete", 0)
|
|
.eq("uu.IsDelete", 0)
|
|
- .in("uu.DepartmentID", "A007", "A012", "A017")
|
|
|
|
-// .likeRight("m.Code", "01.")
|
|
|
|
-// .notIn("m.Code", "01.002.0045", "01.002.0124", "01.002.0381", "01.002.0383")
|
|
|
|
- .notIn("m.CategoryCode", "99.999.", "01.007.")
|
|
|
|
|
|
+ .in("uu.DepartmentID", deptIdList)
|
|
|
|
+ .notIn("m.CategoryCode", notCategoryCodeList)
|
|
.isNotNull("uu.JobNo"));
|
|
.isNotNull("uu.JobNo"));
|
|
|
|
|
|
for (Map<String, Object> map : pickingList) {
|
|
for (Map<String, Object> map : pickingList) {
|
|
@@ -276,9 +361,9 @@ public class StockBackPlanServiceImpl extends ServiceImpl<StockBackPlanMapper, S
|
|
// 时
|
|
// 时
|
|
int h = Integer.parseInt(DateUtil.format(createTime, "H"));
|
|
int h = Integer.parseInt(DateUtil.format(createTime, "H"));
|
|
// 分
|
|
// 分
|
|
-// int m = Integer.parseInt(DateUtil.format(createTime, "m"));
|
|
|
|
- // 小于7点30算前一日
|
|
|
|
- if (h < 7) {
|
|
|
|
|
|
+ int m = Integer.parseInt(DateUtil.format(createTime, "m"));
|
|
|
|
+ // 小于配置时分算前一日
|
|
|
|
+ if (h < configH || (h == configH && m < configM)) {
|
|
createTime = DateUtil.offsetDay(createTime, -1);
|
|
createTime = DateUtil.offsetDay(createTime, -1);
|
|
}
|
|
}
|
|
|
|
|
|
@@ -318,16 +403,23 @@ public class StockBackPlanServiceImpl extends ServiceImpl<StockBackPlanMapper, S
|
|
}
|
|
}
|
|
}
|
|
}
|
|
|
|
|
|
- private void issueA008(Date beginDate, Map<String, StockBackPlanDetails> stockBackPlanMap) {
|
|
|
|
|
|
+ private void issueA008(PlanConfig planConfig, Date beginDate, Map<String, StockBackPlanDetails> stockBackPlanMap) {
|
|
|
|
+
|
|
|
|
+ String beginTime = planConfig.getBeginTime();
|
|
|
|
+ List<String> deptIdList = Arrays.asList(planConfig.getDeptIdSet().split(","));
|
|
|
|
+ List<String> notCategoryCodeList = Arrays.asList(planConfig.getNotCategoryCodeSet().split(","));
|
|
|
|
+
|
|
|
|
+ String[] split = beginTime.split(":");
|
|
|
|
+ int configH = Convert.toInt(split[0]);
|
|
|
|
+ int configM = Convert.toInt(split[1]);
|
|
|
|
+
|
|
|
|
|
|
List<Map<String, Object>> pickingList = baseMapper.getWater(Wrappers.query()
|
|
List<Map<String, Object>> pickingList = baseMapper.getWater(Wrappers.query()
|
|
- .ge("swd.CreatedTime", DateUtil.format(beginDate, "yyyy-MM-dd 8:30:00"))
|
|
|
|
|
|
+ .ge("swd.CreatedTime", DateUtil.format(beginDate, "yyyy-MM-dd " + beginTime))
|
|
.in("swd.StockChangeType", 20, 23)
|
|
.in("swd.StockChangeType", 20, 23)
|
|
.eq("uu.IsDelete", 0)
|
|
.eq("uu.IsDelete", 0)
|
|
- .eq("uu.DepartmentID", "A008")
|
|
|
|
-// .likeRight("m.Code", "01.")
|
|
|
|
-// .notIn("m.Code", "01.002.0045", "01.002.0124", "01.002.0381", "01.002.0383")
|
|
|
|
- .notIn("m.CategoryCode", "99.999.", "01.007.")
|
|
|
|
|
|
+ .in("uu.DepartmentID", deptIdList)
|
|
|
|
+ .notIn("m.CategoryCode", notCategoryCodeList)
|
|
.isNotNull("uu.JobNo"));
|
|
.isNotNull("uu.JobNo"));
|
|
|
|
|
|
for (Map<String, Object> map : pickingList) {
|
|
for (Map<String, Object> map : pickingList) {
|
|
@@ -338,9 +430,9 @@ public class StockBackPlanServiceImpl extends ServiceImpl<StockBackPlanMapper, S
|
|
int h = Integer.parseInt(DateUtil.format(createTime, "H"));
|
|
int h = Integer.parseInt(DateUtil.format(createTime, "H"));
|
|
// 分
|
|
// 分
|
|
int m = Integer.parseInt(DateUtil.format(createTime, "m"));
|
|
int m = Integer.parseInt(DateUtil.format(createTime, "m"));
|
|
- // 小于7点30算前一日
|
|
|
|
- if (h < 8 || (h == 8 && m <= 30)) {
|
|
|
|
-// if (h < 8) {
|
|
|
|
|
|
+
|
|
|
|
+ // 小于配置算前一日
|
|
|
|
+ if (h < configH || (h == configH && m < configM)) {
|
|
createTime = DateUtil.offsetDay(createTime, -1);
|
|
createTime = DateUtil.offsetDay(createTime, -1);
|
|
}
|
|
}
|
|
|
|
|
|
@@ -385,16 +477,22 @@ public class StockBackPlanServiceImpl extends ServiceImpl<StockBackPlanMapper, S
|
|
/**
|
|
/**
|
|
* 回仓
|
|
* 回仓
|
|
*/
|
|
*/
|
|
- private void returnWarehouse(Date beginDate, Map<String, StockBackPlanDetails> stockBackPlanMap) {
|
|
|
|
- List<Map<String, Object>> backList = baseMapper.getReturnWarehouse(Wrappers.query()
|
|
|
|
- .ge("sb.operation_time", DateUtil.format(beginDate, "yyyy-MM-dd 10:00:00"))
|
|
|
|
- .eq("uu.IsDelete", 0)
|
|
|
|
- .in("uu.DepartmentID", "A007", "A012", "A017")
|
|
|
|
- .isNotNull("uu.JobNo")
|
|
|
|
- .notIn("m.CategoryCode", "99.999.", "01.007.")
|
|
|
|
-// .likeRight("m.Code", "01.")
|
|
|
|
-// .notIn("m.Code", "01.002.0045", "01.002.0124", "01.002.0381", "01.002.0383")
|
|
|
|
|
|
+ private void returnWarehouse(PlanConfig planConfig, Date beginDate, Map<String, StockBackPlanDetails> stockBackPlanMap) {
|
|
|
|
+
|
|
|
|
+ String beginTime = planConfig.getBeginTime();
|
|
|
|
+ List<String> deptIdList = Arrays.asList(planConfig.getDeptIdSet().split(","));
|
|
|
|
+ List<String> notCategoryCodeList = Arrays.asList(planConfig.getNotCategoryCodeSet().split(","));
|
|
|
|
|
|
|
|
+ String[] split = beginTime.split(":");
|
|
|
|
+ int configH = Convert.toInt(split[0]);
|
|
|
|
+ int configM = Convert.toInt(split[1]);
|
|
|
|
+
|
|
|
|
+ List<Map<String, Object>> backList = baseMapper.getReturnWarehouse(Wrappers.query()
|
|
|
|
+ .ge("sb.operation_time", DateUtil.format(beginDate, "yyyy-MM-dd " + beginTime))
|
|
|
|
+ .eq("uu.IsDelete", 0)
|
|
|
|
+ .in("uu.DepartmentID", deptIdList)
|
|
|
|
+ .isNotNull("uu.JobNo")
|
|
|
|
+ .notIn("m.CategoryCode", notCategoryCodeList)
|
|
);
|
|
);
|
|
|
|
|
|
for (Map<String, Object> map : backList) {
|
|
for (Map<String, Object> map : backList) {
|
|
@@ -403,9 +501,10 @@ public class StockBackPlanServiceImpl extends ServiceImpl<StockBackPlanMapper, S
|
|
Date createTime = (Date) map.get("createTime");
|
|
Date createTime = (Date) map.get("createTime");
|
|
|
|
|
|
int h = Integer.parseInt(DateUtil.format(createTime, "H"));
|
|
int h = Integer.parseInt(DateUtil.format(createTime, "H"));
|
|
- // int m = Integer.parseInt(DateUtil.format(createTime, "m"));
|
|
|
|
- // 小于10点算前一日
|
|
|
|
- if (h < 10) {
|
|
|
|
|
|
+ int m = Integer.parseInt(DateUtil.format(createTime, "m"));
|
|
|
|
+
|
|
|
|
+ // 小于配置算前一日
|
|
|
|
+ if (h < configH || (h == configH && m < configM)) {
|
|
createTime = DateUtil.offsetDay(createTime, -1);
|
|
createTime = DateUtil.offsetDay(createTime, -1);
|
|
}
|
|
}
|
|
// 排班时间
|
|
// 排班时间
|
|
@@ -445,26 +544,35 @@ public class StockBackPlanServiceImpl extends ServiceImpl<StockBackPlanMapper, S
|
|
}
|
|
}
|
|
|
|
|
|
|
|
|
|
- private void returnWarehouseA008(Date beginDate, Map<String, StockBackPlanDetails> stockBackPlanMap) {
|
|
|
|
|
|
+ /**
|
|
|
|
+ * 转印部门回仓
|
|
|
|
+ */
|
|
|
|
+ private void returnWarehouseA008(PlanConfig planConfig, Date beginDate, Map<String, StockBackPlanDetails> stockBackPlanMap) {
|
|
|
|
+
|
|
|
|
+ String beginTime = planConfig.getBeginTime();
|
|
|
|
+ List<String> deptIdList = Arrays.asList(planConfig.getDeptIdSet().split(","));
|
|
|
|
+ List<String> notCategoryCodeList = Arrays.asList(planConfig.getNotCategoryCodeSet().split(","));
|
|
|
|
+
|
|
|
|
+ String[] split = beginTime.split(":");
|
|
|
|
+ int configH = Convert.toInt(split[0]);
|
|
|
|
+ int configM = Convert.toInt(split[1]);
|
|
|
|
+
|
|
List<Map<String, Object>> backList = baseMapper.getReturnWarehouse(Wrappers.query()
|
|
List<Map<String, Object>> backList = baseMapper.getReturnWarehouse(Wrappers.query()
|
|
- .ge("sb.operation_time", DateUtil.format(beginDate, "yyyy-MM-dd 10:00:00"))
|
|
|
|
- .eq("uu.IsDelete", 0)
|
|
|
|
- .eq("uu.DepartmentID", "A008")
|
|
|
|
- .isNotNull("uu.JobNo")
|
|
|
|
- .notIn("m.CategoryCode", "99.999.", "01.007.")
|
|
|
|
-// .likeRight("m.Code", "01.")
|
|
|
|
-// .notIn("m.Code", "01.002.0045", "01.002.0124", "01.002.0381", "01.002.0383")
|
|
|
|
|
|
+ .ge("sb.operation_time", DateUtil.format(beginDate, "yyyy-MM-dd " + beginTime))
|
|
|
|
+ .eq("uu.IsDelete", 0)
|
|
|
|
+ .in("uu.DepartmentID", deptIdList)
|
|
|
|
+ .notIn("m.CategoryCode", notCategoryCodeList)
|
|
|
|
+ .isNotNull("uu.JobNo")
|
|
);
|
|
);
|
|
|
|
|
|
for (Map<String, Object> map : backList) {
|
|
for (Map<String, Object> map : backList) {
|
|
-
|
|
|
|
// 出库时间
|
|
// 出库时间
|
|
Date createTime = (Date) map.get("createTime");
|
|
Date createTime = (Date) map.get("createTime");
|
|
|
|
|
|
int h = Integer.parseInt(DateUtil.format(createTime, "H"));
|
|
int h = Integer.parseInt(DateUtil.format(createTime, "H"));
|
|
- // int m = Integer.parseInt(DateUtil.format(createTime, "m"));
|
|
|
|
- // 小于10点算前一日
|
|
|
|
- if (h < 10) {
|
|
|
|
|
|
+ int m = Integer.parseInt(DateUtil.format(createTime, "m"));
|
|
|
|
+ // 小于配置算前一日
|
|
|
|
+ if (h < configH || (h == configH && m < configM)) {
|
|
createTime = DateUtil.offsetDay(createTime, -1);
|
|
createTime = DateUtil.offsetDay(createTime, -1);
|
|
}
|
|
}
|
|
// 排班时间
|
|
// 排班时间
|
|
@@ -508,13 +616,15 @@ public class StockBackPlanServiceImpl extends ServiceImpl<StockBackPlanMapper, S
|
|
/**
|
|
/**
|
|
* 修正
|
|
* 修正
|
|
*/
|
|
*/
|
|
- private void correct(Date beginDate, Map<String, StockBackPlanDetails> stockBackPlanMap) {
|
|
|
|
|
|
+ private void correct(PlanConfig planConfig, Date beginDate, Map<String, StockBackPlanDetails> stockBackPlanMap) {
|
|
|
|
+ List<String> notCategoryCodeList = Arrays.asList(planConfig.getNotCategoryCodeSet().split(","));
|
|
|
|
+
|
|
List<Map<String, Object>> correctList = baseMapper.getCorrect(Wrappers.query()
|
|
List<Map<String, Object>> correctList = baseMapper.getCorrect(Wrappers.query()
|
|
- .gt("sbc.correct_time", DateUtil.format(beginDate, "yyyy-MM-dd 00:00:00"))
|
|
|
|
- .isNotNull("uu.JobNo")
|
|
|
|
-// .notIn("m.Code", "01.002.0045", "01.002.0124", "01.002.0381", "01.002.0383")
|
|
|
|
- .notIn("m.CategoryCode", "99.999.", "01.007.")
|
|
|
|
|
|
+ .gt("sbc.correct_time", DateUtil.format(beginDate, "yyyy-MM-dd 00:00:00"))
|
|
|
|
+ .notIn("m.CategoryCode", notCategoryCodeList)
|
|
|
|
+ .isNotNull("uu.JobNo")
|
|
);
|
|
);
|
|
|
|
+
|
|
for (Map<String, Object> map : correctList) {
|
|
for (Map<String, Object> map : correctList) {
|
|
// 出库时间
|
|
// 出库时间
|
|
Date createTime = (Date) map.get("createTime");
|
|
Date createTime = (Date) map.get("createTime");
|
|
@@ -541,27 +651,33 @@ public class StockBackPlanServiceImpl extends ServiceImpl<StockBackPlanMapper, S
|
|
/**
|
|
/**
|
|
* 转入
|
|
* 转入
|
|
*/
|
|
*/
|
|
- private void transferIn(Date beginDate, Map<String, StockBackPlanDetails> stockBackPlanMap) {
|
|
|
|
|
|
+ private void transferIn(PlanConfig planConfig, Date beginDate, Map<String, StockBackPlanDetails> stockBackPlanMap) {
|
|
|
|
+ String beginTime = planConfig.getBeginTime();
|
|
|
|
+ List<String> notCategoryCodeList = Arrays.asList(planConfig.getNotCategoryCodeSet().split(","));
|
|
|
|
+
|
|
|
|
+ String[] split = beginTime.split(":");
|
|
|
|
+ int configH = Convert.toInt(split[0]);
|
|
|
|
+ int configM = Convert.toInt(split[1]);
|
|
|
|
+
|
|
|
|
+
|
|
List<Map<String, Object>> transferPickingList = baseMapper.getTransferPickingList(Wrappers.query()
|
|
List<Map<String, Object>> transferPickingList = baseMapper.getTransferPickingList(Wrappers.query()
|
|
- .ge("st.submit_time", DateUtil.format(beginDate, "yyyy-MM-dd 00:00:00"))
|
|
|
|
- .eq("st.status", StatusConstant.YES)
|
|
|
|
- .eq("st.del_flag", 0)
|
|
|
|
-// .notIn("m.Code", "01.002.0045", "01.002.0124", "01.002.0381", "01.002.0383")
|
|
|
|
- .notIn("m.CategoryCode", "99.999.", "01.007.")
|
|
|
|
|
|
+ .ge("st.submit_time", DateUtil.format(beginDate, "yyyy-MM-dd " + beginTime))
|
|
|
|
+ .eq("st.status", StatusConstant.YES)
|
|
|
|
+ .eq("st.del_flag", 0)
|
|
|
|
+ .notIn("m.CategoryCode", notCategoryCodeList)
|
|
);
|
|
);
|
|
|
|
|
|
for (Map<String, Object> map : transferPickingList) {
|
|
for (Map<String, Object> map : transferPickingList) {
|
|
|
|
|
|
// 出库时间
|
|
// 出库时间
|
|
Date createTime = (Date) map.get("createTime");
|
|
Date createTime = (Date) map.get("createTime");
|
|
- // 时
|
|
|
|
-// int h = Integer.parseInt(DateUtil.format(createTime, "H"));
|
|
|
|
- // 分
|
|
|
|
-// int m = Integer.parseInt(DateUtil.format(createTime, "m"));
|
|
|
|
- // 小于7点30算前一日
|
|
|
|
-// if (h < 10) {
|
|
|
|
-// createTime = DateUtil.offsetDay(createTime, -1);
|
|
|
|
-// }
|
|
|
|
|
|
+
|
|
|
|
+ int h = Integer.parseInt(DateUtil.format(createTime, "H"));
|
|
|
|
+ int m = Integer.parseInt(DateUtil.format(createTime, "m"));
|
|
|
|
+ // 小于配置算前一日
|
|
|
|
+ if (h < configH || (h == configH && m < configM)) {
|
|
|
|
+ createTime = DateUtil.offsetDay(createTime, -1);
|
|
|
|
+ }
|
|
|
|
|
|
// 排班时间
|
|
// 排班时间
|
|
Date planDate = DateUtil.beginOfDay(createTime);
|
|
Date planDate = DateUtil.beginOfDay(createTime);
|
|
@@ -603,14 +719,19 @@ public class StockBackPlanServiceImpl extends ServiceImpl<StockBackPlanMapper, S
|
|
/**
|
|
/**
|
|
* 转出
|
|
* 转出
|
|
*/
|
|
*/
|
|
- private void transferOut(Date beginDate, Map<String, StockBackPlanDetails> stockBackPlanMap) {
|
|
|
|
|
|
+ private void transferOut(PlanConfig planConfig, Date beginDate, Map<String, StockBackPlanDetails> stockBackPlanMap) {
|
|
|
|
+ String beginTime = planConfig.getBeginTime();
|
|
|
|
+ List<String> notCategoryCodeList = Arrays.asList(planConfig.getNotCategoryCodeSet().split(","));
|
|
|
|
+
|
|
|
|
+ String[] split = beginTime.split(":");
|
|
|
|
+ int configH = Convert.toInt(split[0]);
|
|
|
|
+ int configM = Convert.toInt(split[1]);
|
|
|
|
|
|
List<Map<String, Object>> transferBackList = baseMapper.getTransferBackList(Wrappers.query()
|
|
List<Map<String, Object>> transferBackList = baseMapper.getTransferBackList(Wrappers.query()
|
|
- .ge("st.submit_time", DateUtil.format(beginDate, "yyyy-MM-dd 10:00:00"))
|
|
|
|
- .eq("st.status", StatusConstant.YES)
|
|
|
|
- .eq("st.del_flag", 0)
|
|
|
|
-// .notIn("m.Code", "01.002.0045", "01.002.0124", "01.002.0381", "01.002.0383")
|
|
|
|
- .notIn("m.CategoryCode", "99.999.", "01.007.")
|
|
|
|
|
|
+ .ge("st.submit_time", DateUtil.format(beginDate, "yyyy-MM-dd " + beginTime))
|
|
|
|
+ .eq("st.status", StatusConstant.YES)
|
|
|
|
+ .eq("st.del_flag", 0)
|
|
|
|
+ .notIn("m.CategoryCode", notCategoryCodeList)
|
|
);
|
|
);
|
|
|
|
|
|
for (Map<String, Object> map : transferBackList) {
|
|
for (Map<String, Object> map : transferBackList) {
|
|
@@ -619,9 +740,9 @@ public class StockBackPlanServiceImpl extends ServiceImpl<StockBackPlanMapper, S
|
|
Date createTime = (Date) map.get("createTime");
|
|
Date createTime = (Date) map.get("createTime");
|
|
|
|
|
|
int h = Integer.parseInt(DateUtil.format(createTime, "H"));
|
|
int h = Integer.parseInt(DateUtil.format(createTime, "H"));
|
|
-// int m = Integer.parseInt(DateUtil.format(createTime, "m"));
|
|
|
|
- // 小于7点30点算前一日
|
|
|
|
- if (h < 10) {
|
|
|
|
|
|
+ int m = Integer.parseInt(DateUtil.format(createTime, "m"));
|
|
|
|
+ // 小于配置算前一日
|
|
|
|
+ if (h < configH || (h == configH && m < configM)) {
|
|
createTime = DateUtil.offsetDay(createTime, -1);
|
|
createTime = DateUtil.offsetDay(createTime, -1);
|
|
}
|
|
}
|
|
// 排班时间
|
|
// 排班时间
|
|
@@ -660,10 +781,12 @@ public class StockBackPlanServiceImpl extends ServiceImpl<StockBackPlanMapper, S
|
|
}
|
|
}
|
|
}
|
|
}
|
|
|
|
|
|
- private void headTailCorrect(Date beginDate, Map<String, StockBackPlanDetails> stockBackPlanMap) {
|
|
|
|
|
|
+ private void headTailCorrect(PlanConfig planConfig, Date beginDate, Map<String, StockBackPlanDetails> stockBackPlanMap) {
|
|
|
|
+ List<String> notCategoryCodeList = Arrays.asList(planConfig.getNotCategoryCodeSet().split(","));
|
|
|
|
+
|
|
List<Map<String, Object>> list = baseMapper.getHeadTailCorrectList(Wrappers.query()
|
|
List<Map<String, Object>> list = baseMapper.getHeadTailCorrectList(Wrappers.query()
|
|
.ge("sc.correct_date", beginDate)
|
|
.ge("sc.correct_date", beginDate)
|
|
- .notIn("m.CategoryCode", "99.999.", "01.007.")
|
|
|
|
|
|
+ .notIn("m.CategoryCode", notCategoryCodeList)
|
|
);
|
|
);
|
|
|
|
|
|
for (Map<String, Object> map : list) {
|
|
for (Map<String, Object> map : list) {
|
|
@@ -675,7 +798,6 @@ public class StockBackPlanServiceImpl extends ServiceImpl<StockBackPlanMapper, S
|
|
// 排班时间
|
|
// 排班时间
|
|
Date planDate = DateUtil.beginOfDay((Date) map.get("createTime"));
|
|
Date planDate = DateUtil.beginOfDay((Date) map.get("createTime"));
|
|
|
|
|
|
-
|
|
|
|
// 排班对象
|
|
// 排班对象
|
|
StockBackPlanDetails stockBackPlanDetails = stockBackPlanMap.get(jobNo + materialName + planDate.getTime());
|
|
StockBackPlanDetails stockBackPlanDetails = stockBackPlanMap.get(jobNo + materialName + planDate.getTime());
|
|
if (stockBackPlanDetails == null) {
|
|
if (stockBackPlanDetails == null) {
|