Browse Source

更新审批模板

lwx_dev
erdanergou 3 years ago
parent
commit
7f000c5be5
  1. 7
      src/main/java/com/dreamchaser/depository_manage/controller/QyWxOperationController.java
  2. 27
      src/main/java/com/dreamchaser/depository_manage/service/impl/DepositoryRecordServiceImpl.java
  3. 42
      src/main/java/com/dreamchaser/depository_manage/service/impl/StockTakingServiceImpl.java

7
src/main/java/com/dreamchaser/depository_manage/controller/QyWxOperationController.java

@ -547,8 +547,7 @@ public class QyWxOperationController {
String ad_SpStatus = "";
// 定义审批详情
ApprovalInfo_Details ap_detail = null;
for (int i = 0; i < details.size(); i++) {
ApprovalInfo_Details ad = details.get(i);
for (ApprovalInfo_Details ad : details) {
// 获取节点分支审批人审批操作时间,0为尚未操作
spTime = ad.getSpTime();
// 如果当前审批人暂未处理
@ -578,9 +577,9 @@ public class QyWxOperationController {
// 如果已经获取到审批节点
// 获取当前审批节点处理时间
Long aLong = Long.valueOf(spTime);
long aLong = Long.parseLong(spTime);
// 获取之前节点的审批时间
Long aLong1 = Long.valueOf(as_SpTime);
long aLong1 = Long.parseLong(as_SpTime);
if (aLong >= aLong1) {
// 如果当前审批节点是最近处理

27
src/main/java/com/dreamchaser/depository_manage/service/impl/DepositoryRecordServiceImpl.java

@ -1649,7 +1649,7 @@ public class DepositoryRecordServiceImpl implements DepositoryRecordService {
UserByPort userByPort = (UserByPort) portInfo.get("user");
// 用于标志是否更新当前申请明细
Boolean flag = true;
boolean flag = true;
// 获取审核订单
Integer outId = ObjectFormatUtil.toInteger(mainId);
// 获取对应的出库订单
@ -1658,7 +1658,6 @@ public class DepositoryRecordServiceImpl implements DepositoryRecordService {
// 获取当前审批所在部门
Integer maindeparment = userByPort.getMaindeparment();
if (Integer.compare(361, maindeparment) == 0) {
// if(true){
// 如果是仓储中心负责人
String depositoryManagerTime = recordP.getDepositoryManagerTime();
@ -1674,6 +1673,7 @@ public class DepositoryRecordServiceImpl implements DepositoryRecordService {
if ("2".equals(spStatus)) {
// 如果点击的是通过
map.put("depositoryManagerPass", 1);
StringBuilder minRecordByMain = new StringBuilder("[]");
// 根据仓库分类明细
@ -1682,9 +1682,8 @@ public class DepositoryRecordServiceImpl implements DepositoryRecordService {
List<Integer> depositoryIdList = new ArrayList<>();
// 获取所有详情
List<ApplicationOutRecordMin> applicationOutRecordMinByParent = depositoryRecordMapper.findApplicationOutRecordMinByParent(recordP.getId());
for (int i = 0; i < applicationOutRecordMinByParent.size(); i++) {
for (ApplicationOutRecordMin applicationOutRecordMin : applicationOutRecordMinByParent) {
// 获取子单信息
ApplicationOutRecordMin applicationOutRecordMin = applicationOutRecordMinByParent.get(i);
// 获取当前仓库下的子订单
Integer depositoryId = applicationOutRecordMin.getDepositoryId();
@ -1703,7 +1702,8 @@ public class DepositoryRecordServiceImpl implements DepositoryRecordService {
//设置子订单在redis中的主键
String minRecordKey = "minRecord:" + applicationOutRecordMin.getId();
minRecordByMain.insert(1, minRecordKey + ","); // 将子订单主键插入到主订单的子订单列表
// 将子订单主键插入到主订单的子订单列表
minRecordByMain.insert(1, minRecordKey + ",");
// 设置当前子订单对应仓库管理员记录
StringBuilder minRecordManage = new StringBuilder();
// 将要存储到redis中的子订单信息
@ -1713,18 +1713,18 @@ public class DepositoryRecordServiceImpl implements DepositoryRecordService {
// 获取对应的物料编号
Integer mid = applicationOutRecordMin.getMid();
// 获取物料信息
Inventory materialById = materialMapper.findInventoryById(mid);
Inventory inventory = materialMapper.findInventoryById(mid);
// 获取该物料所处仓库的仓库管理员
List<Integer> userIdByDid = new ArrayList<>();
userIdByDid = roleService.findUserIdByDid(materialById.getDepositoryId());
userIdByDid = roleService.findUserIdByDid(inventory.getDepositoryId());
StringBuilder QyWxUid = new StringBuilder();
for (int j = 0; j < userIdByDid.size(); j++) {
for (Integer integer : userIdByDid) {
// 获取仓库管理员信息
UserByPort manager = LinkInterfaceUtil.FindUserById(userIdByDid.get(j), null);
UserByPort manager = LinkInterfaceUtil.FindUserById(integer, null);
// 仓库管理员订单信息
Map<String, Object> userRecord = new HashMap<>();
// 用户当前子订单
String userMinRecord = (String) redisTemplate.opsForHash().get("user:" + userIdByDid.get(j), "minRecord");
String userMinRecord = (String) redisTemplate.opsForHash().get("user:" + integer, "minRecord");
if (userMinRecord == null) { // 如果当前用户没有子订单
userRecord.put("minRecord", "[" + minRecordKey + "," + "]"); // 插入一条子订单
} else { // 如果当前用户已经有子订单
@ -1733,8 +1733,8 @@ public class DepositoryRecordServiceImpl implements DepositoryRecordService {
userRecord.put("minRecord", minRecordList.toString());
}
// 更新redis中用户记录
redisTemplate.opsForHash().putAll("user:" + userIdByDid.get(j), userRecord);
minRecordManage.append(userIdByDid.get(j)).append(",");
redisTemplate.opsForHash().putAll("user:" + integer, userRecord);
minRecordManage.append(integer).append(",");
// QyWxUid.append(manager.getWorkwechat()+",");
}
QyWxUid.append("PangFuZhen,");
@ -1792,7 +1792,8 @@ public class DepositoryRecordServiceImpl implements DepositoryRecordService {
// 将当前redis中存储的spno删除
redisTemplate.delete(spNo);
}
} else {
}
else {
// 如果是部门负责人
String departmentheadTime = recordP.getDepartmentheadTime();

42
src/main/java/com/dreamchaser/depository_manage/service/impl/StockTakingServiceImpl.java

@ -938,6 +938,8 @@ public class StockTakingServiceImpl implements StockTakingService {
@Transactional(rollbackFor = Exception.class)
@Override
public Integer completeStockTakingByQyWx(TemplateCard templateCard, String userAgent) {
// 定义结果集
Map<String, Object> result = new HashMap<>();
// 获取点击的按钮
@ -969,23 +971,22 @@ public class StockTakingServiceImpl implements StockTakingService {
List<Long> errIds = new ArrayList<>();
// 定义出错信息
List<String> err = new ArrayList<>();
// 获取盘点的库位id
Integer placeId = mainRecord.getPlaceId();
// 获取库位详情
Place placeById = placeMapper.findPlaceById(placeId);
// 获取盘点的仓库id
Integer depositoryId = mainRecord.getDepositoryId();
// 获取仓库详情
Depository depositoryById = depositoryMapper.findDepositoryById(depositoryId);
// 获取所有子单
List<StockTakingChildP> minRecordList = stockTakingMapper.selectStockTakingChildByMainId(mainId);
for (int i = 0; i < minRecordList.size(); i++) {
// 获取子单详情
StockTakingChildP minRecord = minRecordList.get(i);
for (StockTakingChildP minRecord : minRecordList) {
// 获取当前盘点的计量单位
String unit = minRecord.getUnit();
// 获取盘点的物料详情
// 获取当前盘点结果
String takingResult = minRecord.getTakingResult();
@ -997,9 +998,10 @@ public class StockTakingServiceImpl implements StockTakingService {
// 获取盈亏数量
Integer inventory = minRecord.getInventory();
// 获取盘点物料信息
Inventory inventoryById = materialMapper.findInventoryById(minRecord.getMid());
// 用于获取物料与库位的对应关系
Map<String, Object> paramForMaterialAndPlace = new HashMap<>();
paramForMaterialAndPlace.put("mid", inventoryById.getId());
paramForMaterialAndPlace.put("pid", placeById.getId());
@ -1008,13 +1010,12 @@ public class StockTakingServiceImpl implements StockTakingService {
// 根据盘点结果重新计算物料的单价
// 数据库中的总额
// 获取判断对应的生产日期
Long producedDate = minRecord.getProducedDate();
// 数据库中的总额
Double amounts = (inventoryById.getAmounts() / 100);
double amounts = (inventoryById.getAmounts() / 100);
// 当前盘点数目
Integer newInventory = minRecord.getNewInventory();
@ -1069,7 +1070,8 @@ public class StockTakingServiceImpl implements StockTakingService {
inventoryById.setPrice(avgPrice);
materialMapper.updateMaterialAndProducedDate(materialAndProducedDate);
} else {
}
else {
// 如果没有生产日期
// 获取当前生产日期中的物料
@ -1116,6 +1118,8 @@ public class StockTakingServiceImpl implements StockTakingService {
// 新的均价
avgPrice = (amounts / (quantity)) * 100;
BigDecimal bg = new BigDecimal(avgPrice);
avgPrice = bg.setScale(2, BigDecimal.ROUND_HALF_UP).doubleValue();
}
// 更新物料单价
inventoryById.setPrice(avgPrice);
@ -1248,6 +1252,7 @@ public class StockTakingServiceImpl implements StockTakingService {
} else {
// 如果是拆单单位
// 用于查找对应的拆单记录
Map<String, Object> paramForSplitInfo = new HashMap<>();
paramForSplitInfo.put("newUnit", unit);
@ -1348,6 +1353,7 @@ public class StockTakingServiceImpl implements StockTakingService {
@Transactional(rollbackFor = Exception.class)
@Override
public Map<String, Object> reviewByQyWxApproval(String mainId, ApprovalInfo_Details approvalInfo_details, String userAgent, String spStatus, String spNo) {
// 定义结果集
Map<String, Object> result = new HashMap<>();
// 用于进行修改数据
Map<String, Object> map = new HashMap<>();
@ -1414,9 +1420,9 @@ public class StockTakingServiceImpl implements StockTakingService {
// 获取所有子单
List<StockTakingChildP> minRecordList = stockTakingMapper.selectStockTakingChildByMainId(ObjectFormatUtil.toInteger(mainId));
for (int i = 0; i < minRecordList.size(); i++) {
for (StockTakingChildP minRecord : minRecordList) {
// 获取子单详情
StockTakingChildP minRecord = minRecordList.get(i);
// 获取盘点的物料详情
// 获取当前盘点结果
@ -1430,10 +1436,10 @@ public class StockTakingServiceImpl implements StockTakingService {
Integer inventory = minRecord.getInventory();
Material materialById = materialMapper.findMaterialById(minRecord.getMid());
Inventory inventoryById = materialMapper.findInventoryById(minRecord.getMid());
Map<String, Object> paramForMaterialAndPlace = new HashMap<>();
paramForMaterialAndPlace.put("mid", materialById.getId());
paramForMaterialAndPlace.put("mid", inventoryById.getId());
paramForMaterialAndPlace.put("pid", placeById.getId());
// 获取物料与库位的对应关系
MaterialAndPlace placeAndMaterialByMidAndPid = placeMapper.findPlaceAndMaterialByMidAndPid(paramForMaterialAndPlace);
@ -1441,7 +1447,7 @@ public class StockTakingServiceImpl implements StockTakingService {
// 根据盘点结果重新计算物料的单价
// 数据库中的总额
Double amounts = (materialById.getAmounts() / 100);
Double amounts = (inventoryById.getAmounts() / 100);
Integer newInventory = minRecord.getNewInventory();
Double avgPrice = 0.0;
@ -1450,13 +1456,15 @@ public class StockTakingServiceImpl implements StockTakingService {
// 新的均价
avgPrice = (amounts / newInventory) * 100;
BigDecimal bg = new BigDecimal(avgPrice);
avgPrice = bg.setScale(2, BigDecimal.ROUND_HALF_UP).doubleValue();
}
materialById.setPrice(avgPrice);
inventoryById.setPrice(avgPrice);
// 获取当前库位上物料数量
Integer oldQuantity = materialById.getQuantity() - placeAndMaterialByMidAndPid.getQuantity();
Integer oldQuantity = inventoryById.getQuantity() - placeAndMaterialByMidAndPid.getQuantity();
materialById.setQuantity(oldQuantity + newInventory);
inventoryById.setQuantity(oldQuantity + newInventory);
// 用于计算新的库位数量

Loading…
Cancel
Save