Procházet zdrojové kódy

Merge branch 'dev' of chaoren1/wlyy2.0 into medicare

wangzhinan před 3 roky
rodič
revize
00252c1591

+ 254 - 0
common/common-entity/src/main/java/com/yihu/jw/entity/a1entity/MediicineStockoutDetailVO.java

@ -0,0 +1,254 @@
package com.yihu.jw.entity.a1entity;
import com.fasterxml.jackson.annotation.JsonFormat;
import com.yihu.jw.entity.UuidIdentityEntityWithOperator;
import javax.persistence.Entity;
import javax.persistence.Table;
import java.io.Serializable;
import java.util.Date;
@Entity
@Table(name="t_mediicine_stockout_detail")
public class MediicineStockoutDetailVO extends UuidIdentityEntityWithOperator implements Serializable {
    /**
     * idstockout
     */
    private String idStockOut;
    /**
     * orderno
     */
    private String orderNo;
    /**
     * 药品信息
     */
    private String medInfo;
    /**
     * 售价
     */
    private Float price;
    /**
     * 数量
     */
    private String quantity;
    /**
     * 批次号
     */
    private String batchNum;
    /**
     * cargoinfo
     */
    private String cargoInfo;
    /**
     * drugcode
     */
    private String drugCode;
    /**
     * 生产日期
     */
    private Date proDate;
    /**
     * 有效期至
     */
    private Date expDate;
    /**
     * 商品图
     */
    private String productPic;
    /**
     * 订单号
     */
    private String idOrder;
    /**
     * 订单明细
     */
    private String IdOrderDetail;
    private String drugName;
    private String orgCode;
    private String drugId;
    private Integer inventoryNum;
    private String specif;
    private String unit;
    public MediicineStockoutDetailVO() {
    }
    public String getSpecif() {
        return specif;
    }
    public void setSpecif(String specif) {
        this.specif = specif;
    }
    public String getUnit() {
        return unit;
    }
    public void setUnit(String unit) {
        this.unit = unit;
    }
    public Integer getInventoryNum() {
        return inventoryNum;
    }
    public void setInventoryNum(Integer inventoryNum) {
        this.inventoryNum = inventoryNum;
    }
    public String getOrgCode() {
        return orgCode;
    }
    public void setOrgCode(String orgCode) {
        this.orgCode = orgCode;
    }
    public String getDrugId() {
        return drugId;
    }
    public void setDrugId(String drugId) {
        this.drugId = drugId;
    }
    public String getIdStockOut() {
        return idStockOut;
    }
    public void setIdStockOut(String idStockOut) {
        this.idStockOut = idStockOut;
    }
    public String getOrderNo() {
        return orderNo;
    }
    public void setOrderNo(String orderNo) {
        this.orderNo = orderNo;
    }
    public String getMedInfo() {
        return medInfo;
    }
    public void setMedInfo(String medInfo) {
        this.medInfo = medInfo;
    }
    public Float getPrice() {
        return price;
    }
    public void setPrice(Float price) {
        this.price = price;
    }
    public String getQuantity() {
        return quantity;
    }
    public void setQuantity(String quantity) {
        this.quantity = quantity;
    }
    public String getBatchNum() {
        return batchNum;
    }
    public void setBatchNum(String batchNum) {
        this.batchNum = batchNum;
    }
    public String getCargoInfo() {
        return cargoInfo;
    }
    public void setCargoInfo(String cargoInfo) {
        this.cargoInfo = cargoInfo;
    }
    public String getDrugCode() {
        return drugCode;
    }
    public void setDrugCode(String drugCode) {
        this.drugCode = drugCode;
    }
    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+08:00")
    public Date getProDate() {
        return proDate;
    }
    public void setProDate(Date proDate) {
        this.proDate = proDate;
    }
    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+08:00")
    public Date getExpDate() {
        return expDate;
    }
    public void setExpDate(Date expDate) {
        this.expDate = expDate;
    }
    public String getProductPic() {
        return productPic;
    }
    public void setProductPic(String productPic) {
        this.productPic = productPic;
    }
    public String getIdOrder() {
        return idOrder;
    }
    public void setIdOrder(String idOrder) {
        this.idOrder = idOrder;
    }
    public String getIdOrderDetail() {
        return IdOrderDetail;
    }
    public void setIdOrderDetail(String idOrderDetail) {
        IdOrderDetail = idOrderDetail;
    }
    public String getDrugName() {
        return drugName;
    }
    public void setDrugName(String drugName) {
        this.drugName = drugName;
    }
}

+ 1 - 0
common/common-request-mapping/src/main/java/com/yihu/jw/rm/base/BaseRequestMapping.java

@ -117,6 +117,7 @@ public class BaseRequestMapping {
        public static final String changeMoreReceiveState  = "/changeMoreReceiveState";
        public static final String getOutDetailListById  = "/getOutDetailListById";
        public static final String getOutDetailById  = "/getOutDetailById";
        public static final String getOutDetailByUserIdAndDeviceId  = "/getOutDetailByUserIdAndDeviceId";
        public static final String getOrgListByTown  = "/getOrgListByTown";
        public static final String enableOrDis  = "/enableOrDis";
        public static final String docFullInfo  = "/docFullInfo";

+ 9 - 1
svr/svr-base/src/main/java/com/yihu/jw/base/dao/a2dao/MediicinecabinetInventoryDao.java

@ -33,8 +33,16 @@ public interface MediicinecabinetInventoryDao extends PagingAndSortingRepository
    List<Map<String, Object>> selectsomethingBysomeCondition(String deviceId, String[] states);
    @Query("select sum(qty) as qty, drugCode as drugCode, orgCode as orgCode, sum(ratedInventory) as ratedInventory from MediicinecabinetInventory where equNum = ?1 and state in ?2 and drugCode is not null and orgCode is not null group by drugCode,orgCode")
    @Query("select sum(qty) as qty, drugId as drugId, drugCode as drugCode, orgCode as orgCode, sum(ratedInventory) as ratedInventory from MediicinecabinetInventory where equNum = ?1 and state in ?2 and drugCode is not null and orgCode is not null group by drugCode,orgCode")
    List<Map<String, Object>> selectsomethingBysomeConditionWithEquNum(String equNum, String[] states);
    @Query(" select sum(qty) as qty " +
            "from MediicinecabinetInventory " +
            "where orgCode = ?1 " +
            "and drugCode = ?2 " +
            "and idDevice = ?3 " +
            "and state in ?4 " +
            "and orgCode is not null and drugCode is not null ")
    Integer sumqty(String orgCode, String drugCode, String deviceId, String[] state);
}

+ 1 - 0
svr/svr-base/src/main/java/com/yihu/jw/base/dao/a2dao/MediicinedrugsDao.java

@ -21,4 +21,5 @@ public interface MediicinedrugsDao extends PagingAndSortingRepository<Mediicined
    List<Mediicinedrugs> findMediicinedrugsByOrgCode(String orgCode);
}

+ 5 - 0
svr/svr-base/src/main/java/com/yihu/jw/base/dao/a2dao/MediicinestockoutDao.java

@ -16,4 +16,9 @@ public interface MediicinestockoutDao extends PagingAndSortingRepository<Mediici
    Integer countByUpNum(String upNum);
    @Query(" select id as id from Mediicinestockout where replenishEr = ?1 and replenishEqu = ?2 and receiveState = ?3")
    List<String> selectOutIdsByReplenishErAndReplenishEquAndReceiveState(String userId, String deviceId, String state);
}

+ 4 - 0
svr/svr-base/src/main/java/com/yihu/jw/base/dao/a2dao/MediicinestockoutdetailDao.java

@ -2,6 +2,7 @@ package com.yihu.jw.base.dao.a2dao;
import com.yihu.jw.entity.a1entity.Mediicinestockoutdetail;
import com.yihu.jw.entity.a1entity.Mediicinestockupdetail;
import org.springframework.data.jpa.repository.Query;
import org.springframework.data.repository.PagingAndSortingRepository;
@ -17,4 +18,7 @@ public interface MediicinestockoutdetailDao extends PagingAndSortingRepository<M
    //按出货明细
    @Query("select a from Mediicinestockoutdetail a where a.idStockOut =  ?1 ")
    List<Mediicinestockoutdetail> getoutdetail(String idstockout);
    List<Mediicinestockoutdetail> findMediicinestockoutdetailsByIdStockOutInOrderByIdStockOutAscCreateTimeDesc(List<String> ids);
}

+ 19 - 0
svr/svr-base/src/main/java/com/yihu/jw/base/endpoint/a4endpoint/MedicineOutEndpoint.java

@ -6,8 +6,10 @@ import com.fasterxml.jackson.databind.ObjectMapper;
import com.yihu.jw.base.service.a3service.MedicineOrderService;
import com.yihu.jw.base.service.a3service.MedicineStockOutService;
import com.yihu.jw.base.util.ConstantUtils;
import com.yihu.jw.entity.a1entity.MediicineStockoutDetailVO;
import com.yihu.jw.entity.a1entity.Mediicinestockout;
import com.yihu.jw.entity.a1entity.Mediicinestockoutdetail;
import com.yihu.jw.entity.a1entity.Mediicinestockupdetail;
import com.yihu.jw.restmodel.web.Envelop;
import com.yihu.jw.restmodel.web.ListEnvelop;
import com.yihu.jw.restmodel.web.PageEnvelop;
@ -175,6 +177,23 @@ public class MedicineOutEndpoint extends EnvelopRestEndpoint {
    public List<Mediicinestockout> list(){
        return stockoutService.getoutlist();
    }
    @GetMapping(value = BaseRequestMapping.BaseOut.getOutDetailByUserIdAndDeviceId)
    @ApiOperation(value = "根据用户和设备获取出货单详情" , notes="根据用户和设备获取出货单详情")
    public ListEnvelop<MediicineStockoutDetailVO> getOutDetailByUserIdAndDeviceId  (
            @ApiParam(name = "userId", value = "用户id", required = true)
            @RequestParam(value = "userId") String userId,
            @ApiParam(name = "deviceId", value = "设备id", required = true)
            @RequestParam(value = "deviceId") String deviceId) throws Exception {
        JSONObject jsonObject = stockoutService.getOutDetailByUserIdAndDeviceId(deviceId, userId);
        List<MediicineStockoutDetailVO> list = JSONObject.parseArray(jsonObject.getJSONArray("msg").toJSONString(), MediicineStockoutDetailVO.class);
        return success(list, MediicineStockoutDetailVO.class);
    }
//---------众建平台,无法转移,
//    @GetMapping("getorderlist")
//    @ApiOperation("获取订单列表")

+ 35 - 0
svr/svr-base/src/main/java/com/yihu/jw/base/service/a3service/MedicineStockOutService.java

@ -16,6 +16,7 @@ import com.yihu.jw.entity.base.user.UserDO;
import com.yihu.jw.util.date.DateUtil;
import com.yihu.jw.utils.hibernate.HibenateUtils;
import com.yihu.mysql.query.BaseJpaService;
import org.springframework.beans.BeanUtils;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
import org.springframework.transaction.annotation.Transactional;
@ -23,6 +24,7 @@ import org.springframework.util.StringUtils;
import java.io.IOException;
import java.text.DecimalFormat;
import java.util.ArrayList;
import java.util.Date;
import java.util.List;
import java.util.Map;
@ -50,6 +52,9 @@ public class MedicineStockOutService extends BaseJpaService<Mediicinestockout, M
    @Autowired
    private MediicinestockupdetailDao mediicinestockupdetailDao;
    @Autowired
    private MediicinecabinetInventoryDao mediicinecabinetInventoryDao;
    @Autowired
    private UserDao userDao;
    @Autowired
@ -466,4 +471,34 @@ public class MedicineStockOutService extends BaseJpaService<Mediicinestockout, M
        result.put("response", ConstantUtils.SUCCESS);
        return result;
    }
    public JSONObject getOutDetailByUserIdAndDeviceId(String deviceId, String userId) throws Exception {
        JSONObject result = new JSONObject();
        List<String> outIds = outDao.selectOutIdsByReplenishErAndReplenishEquAndReceiveState(userId, deviceId, "1");
        List<Mediicinestockoutdetail> list = outdetailDao.findMediicinestockoutdetailsByIdStockOutInOrderByIdStockOutAscCreateTimeDesc(outIds);
        List<MediicineStockoutDetailVO> vos = new ArrayList<>(list.size());
        for (Mediicinestockoutdetail mediicinestockoutdetail : list) {
            MediicineStockoutDetailVO mediicineStockoutDetailVO = new MediicineStockoutDetailVO();
            BeanUtils.copyProperties(mediicinestockoutdetail, mediicineStockoutDetailVO);
            Integer inventoryNum = mediicinecabinetInventoryDao.sumqty(mediicinestockoutdetail.getOrgCode(),
                    mediicinestockoutdetail.getDrugCode(),
                    deviceId,
                    new String[]{"1", "21"});
            if(inventoryNum == null) inventoryNum = 0;
            mediicineStockoutDetailVO.setInventoryNum(inventoryNum);
            Mediicinedrugs mediicinedrugs = drugsDao.findOne(mediicinestockoutdetail.getDrugId());
            mediicineStockoutDetailVO.setPrice(mediicinedrugs.getPrice());
            mediicineStockoutDetailVO.setSpecif(mediicinedrugs.getSpecif());
            mediicineStockoutDetailVO.setUnit(mediicinedrugs.getUnit());
            mediicineStockoutDetailVO.setProductPic(mediicinedrugs.getPic());
            vos.add(mediicineStockoutDetailVO);
        }
        result.put("msg", JavaBeanUtils.getInstance().mapListJson(vos));
        return result;
    }
}

+ 1 - 0
svr/svr-base/src/main/java/com/yihu/jw/base/service/a3service/MedicineStockUpService.java

@ -23,6 +23,7 @@ import org.springframework.util.StringUtils;
import java.io.IOException;
import java.math.BigDecimal;
import java.util.ArrayList;
import java.util.Date;
import java.util.List;
import java.util.Map;

+ 119 - 0
svr/svr-base/src/main/java/com/yihu/jw/base/service/a3service/MedicinedeviceService.java

@ -3015,6 +3015,9 @@ public class MedicinedeviceService  extends BaseJpaService<Mediicinedevice, Medi
        return result;
    }
    /**
     * 获取设备库存
     * @param belongCommunity
@ -4463,5 +4466,121 @@ public class MedicinedeviceService  extends BaseJpaService<Mediicinedevice, Medi
    }
    /**
     * 预警详情
     * @param deviceId
     * @param page
     * @param size
     * @return
     * @throws Exception
     */
    public JSONObject getEaringWarringInfoByDeviceWithPage(String deviceId, int page, int size) throws Exception {
        JSONObject result = new JSONObject();
//        Mediicinedevice mediicinedevice = deviceDao.findOne(deviceId);
//
//        //该设备库存预警规则
//        List<MedicineWarrayRule> rules = medicineWarrayRuleDao.findMedicineWarrayRulesByEquNumAndDel(mediicinedevice.getEquNum(), 1);
//        //
//        List<Map<String, Integer>> drugIds = new ArrayList<>();
//        List<Map<String, Object>> collect = inventoryDao.selectsomethingBysomeConditionWithEquNum(mediicinedevice.getEquNum(), new String[]{"1", "21"});
//        //获取了所有缺货的药品id
//        for (MedicineWarrayRule rule : rules) {
//            for (Map<String, Object> stringObjectMap : collect) {
//                Integer ratedInventory = Integer.parseInt(stringObjectMap.get("ratedInventory") + "");
//                if (ratedInventory > rule.getLower() && ratedInventory < rule.getUpper()) {
//                    Integer tempQty = Integer.parseInt(stringObjectMap.get("qty") + "");
//                    if ("%".equals(rule.getMatchUnit())) {
//                        Integer matchValue = (int) Math.ceil((rule.getUpper() * rule.getMatchValue()) / 100.0);
//                        if (tempQty <= matchValue) {
//                            Map<String, Integer> tempMap = new HashMap<>();
//                            tempMap.put(stringObjectMap.get("drugId") + "", Integer.parseInt(stringObjectMap.get("qty") + ""));
//                            drugIds.add(tempMap);
//                        }
//                    }
//                    if ("件".equals(rule.getMatchUnit())) {
//                        if (tempQty <= rule.getMatchValue()) {
//                            Map<String, Integer> tempMap = new HashMap<>();
//                            tempMap.put(stringObjectMap.get("drugId") + "", Integer.parseInt(stringObjectMap.get("qty") + ""));
//                            drugIds.add(tempMap);
//                        }
//                    }
//                }
//            }
//        }
//        String sql = "";
//        {
//
//            sql = "SELECT\n" +
//                    "tmd.id,\n" +
//                    "tmd.approval_num,\n" +
//                    "tmd.barcode,\n" +
//                    "tmd.brand,\n" +
//                    "tmd.dos_form,\n" +
//                    "tmd.state,\n" +
//                    "tmd.drug_bar_code,\n" +
//                    "tmd.drug_class,\n" +
//                    "tmd.drug_class_code,\n" +
//                    "tmd.drug_code,\n" +
//                    "tmd.drug_name,\n" +
//                    "tmd.drug_name_alies,\n" +
//                    "tmd.drug_short_code,\n" +
//                    "tmd.drug_type_code,\n" +
//                    "tmd.earlywarningcate,\n" +
//                    "tmd.inventory,\n" +
//                    "tmd.manufactor,\n" +
//                    "tmd.med_cabinet,\n" +
//                    "tmd.pic,\n" +
//                    "tmd.price,\n" +
//                    "tmd.sale_volume,\n" +
//                    "tmd.self_code,\n" +
//                    "tmd.specif,\n" +
//                    "tmd.unit,\n" +
//                    "tmd.create_time,\n" +
//                    "tmd.create_user,\n" +
//                    "tmd.create_user_name,\n" +
//                    "tmd.update_time,\n" +
//                    "tmd.update_user,\n" +
//                    "tmd.update_user_name,\n" +
//                    "tmd.drug_sku,\n" +
//                    "tmd.drug_num,\n" +
//                    "tmd.use_num,\n" +
//                    "tmd.use_way,\n" +
//                    "tmd.use_rate,\n" +
//                    "tmd.use_dose,\n" +
//                    "tmd.use_way_add,\n" +
//                    "tmd.org_code,\n" +
//                    "tmd.org_name,\n" +
//                    "tmd.quantity_unit,\n" +
//                    "tmd.pack_unit,\n" +
//                    "tmd.spell_code\n" +
//                    "FROM\n" +
//                    "t_mediicine_drugs AS tmd\n" +
////                    "WHERE ',"+ drugIds.stream().map(item->item.keySet()).collect(Collectors.joining(",")) +",' LIKE CONCAT('%,',t.belong_community,',%')\n";
//
//        }
//        List<Map<String, Object>> list = null;
//        list = hibenateUtils.createSQLQuery(sql,page,size);
//        String countSql = "SELECT\n" +
//                "COUNT(DISTINCT(id))" +
//                "FROM\n" +
//                "\tt_mediicinecabinet_inventory\n" +
//                "WHERE" +
//                "\tid_device = '" + deviceId + "'\n" +
//                "AND CAST(qty as UNSIGNED) < rated_inventory\n" +
//                "AND drug_code IS NOT NULL\n" +
//                "AND org_code IS NOT NULL\n" +
//                "AND (state = 1 OR state = 21)\n" +
//                "ORDER BY\n" +
//                "\tdrug_code,\n" +
//                "\torg_code";
//        Logger.getAnonymousLogger().info("finalCountSql="+countSql);
//        int count = jdbcTemplate.queryForObject(countSql,Integer.class);
//
//        result.put("count", count);
//        result.put("msg", JavaBeanUtils.getInstance().mapListJson(list));
        return result;
    }
}